【发布时间】:2018-11-10 11:43:29
【问题描述】:
我是 C 语言的新手,而不是整体编程。我想知道为什么当我在结构外部的 if 语句中声明要使用的变量时,我收到的输出是不正确的(无论如何对于这段代码)。
这是我的代码:
#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");
}
}
编辑:我放置的代码是我没有得到正确输出的“修复”。我希望当我在整个 IF 语句之外声明 netpay 变量时,我会收到正确的输出,与上面代码的输出相同。
编辑 2:以前的版本
#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");
}
}
【问题讨论】:
-
哪个输出不正确?你期望的输出是什么?
-
结构在哪里?
-
我预期的输出是,当 Grosspay = 300 时,输出时 netpay = 270。相反,它是 Grosspay = 300 和 netpay = 300。我正确插入输出的代码,但这似乎有点乏味,我希望当我在 If 语句结构之外声明 netpay 变量时,我会收到正确的输出。
-
编辑并添加了相关的代码。
标签: c variables if-statement declaration