I'm new to the C language, rather programming overall. I was wondering why is it that when I declare a variable to be used within an if statement OUTSIDE the structure, that the output I've received is incorrect (for this piece of code anyway).
Here's my code:
#include<stdio.h>
void grossPay();
int main()
{
grossPay();
}
void grossPay()
{
int rate = 10, hours;
double tax, grosspay, netpay;
printf("Enter work hours this week: ");
scanf("%d", &hours);
grosspay = hours * rate;
if (grosspay <= 300 && grosspay > 0)
{
tax = 0.10;
netpay = grosspay - grosspay * tax;
printf("Pay for %d hours of week with $%d per hour\n", hours, rate);
printf("Gross pay: $%.2f\n", grosspay);
printf("Net pay: $%.2f\n", netpay);
}
else if (grosspay > 300 && grosspay <=1000)
{
tax = 0.15;
netpay = grosspay - grosspay * tax;
printf("Pay for %d hours of week with $%d per hour\n", hours, rate);
printf("Gross pay: $%.2f\n", grosspay);
printf("Net pay: $%.2f\n", netpay);
}
else if (grosspay > 1000)
{
tax = 0.25;
netpay = grosspay - grosspay * tax;
printf("Pay for %d hours of week with $%d per hour\n", hours, rate);
printf("Gross pay: $%.2f\n", grosspay);
printf("Net pay: $%.2f\n", netpay);
}
else
{
printf("Invalid input. Please try again.\n\n");
}
}
Edit: The code I placed was my 'fix' for not getting the correct output. I expected that when I declared the netpay variable once outside the entire IF statement that I would receive the correct output, the same output from the code above.
Edit 2: Previous version
#include<stdio.h>
void grossPay();
int main()
{
grossPay();
}
void grossPay()
{
int rate = 10, hours;
double tax, grosspay, netpay;
printf("Enter work hours this week: ");
scanf("%d", &hours);
grosspay = hours * rate;
netpay = grosspay - grosspay * tax;
if (grosspay <= 300 && grosspay > 0)
{
tax = 0.10;
printf("Pay for %d hours of week with $%d per hour\n", hours, rate);
printf("Gross pay: $%.2f\n", grosspay);
printf("Net pay: $%.2f\n", netpay);
}
else if (grosspay > 300 && grosspay <=1000)
{
tax = 0.15;
printf("Pay for %d hours of week with $%d per hour\n", hours, rate);
printf("Gross pay: $%.2f\n", grosspay);
printf("Net pay: $%.2f\n", netpay);
}
else if (grosspay > 1000)
{
tax = 0.25;
printf("Pay for %d hours of week with $%d per hour\n", hours, rate);
printf("Gross pay: $%.2f\n", grosspay);
printf("Net pay: $%.2f\n", netpay);
}
else
{
printf("Invalid input. Please try again.\n\n");
}
}