我制作了这个程序,它根据用户输入计算一系列工资的税金。一切工作正常,除了我似乎无法找到一种方法让应用程序忽略最后 3 个 printf,如果用户输入负值则打印一条错误消息。如果用户输入负数,我不想显示最后 3 个 printf,相反我希望应用程序只显示“错误:您输入了负数”或类似的东西。我使用 visual studio 作为我的编译器,这是一个 C 应用程序。请帮助。也请对我的编程课放轻松,我们仍在做非常基础的事情。
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float salary, tax = 0;
printf("\n\n\tEnter the salary ammount per year: \t\t$");
scanf("%f", &salary);
if (salary <= 10000){
tax=0;
}
else if (salary > 10000 && salary <= 40000){
tax = (salary - 10000)*0.2;
} else if (salary > 40000 && salary <= 50000){
tax = 6000 + (salary - 40000)*0.3 ;
} else if (salary > 50000 && salary <= 75000){
tax = 9000 + (salary - 50000)*0.4;
} else if (salary > 75000.01 && salary <= 100000){
tax = 19000 + (salary - 75000)*0.5;
} else if (salary > 100000 && salary >=100000.01){
tax = 31500 + (salary - 100000)*0.6;
}
printf("\nSalary per year:\t\t $ %.2f\n\n", salary);
printf("Tax ammount per year:\t\t $ %.2f\n\n", tax);
printf("Salary after tax:\t\t $ %.2f\n", salary-tax);
getchar();getchar();
}
最佳答案
您已经证明您知道如何使用 if
检查是否为 int
的语句落在给定的范围内。只需将相同的逻辑应用于输出即可。负数是 < 0
.
例如:
if(salary < 0) {
//print error
} else {
if (salary <= 10000) {
tax=0;
} else if (salary > 10000 && salary <= 40000) {
tax = (salary - 10000)*0.2;
} else if (salary > 40000 && salary <= 50000) {
tax = 6000 + (salary - 40000)*0.3 ;
} else if (salary > 50000 && salary <= 75000) {
tax = 9000 + (salary - 50000)*0.4;
} else if (salary > 75000/*.01*/ && salary <= 100000) {
tax = 19000 + (salary - 75000)*0.5;
} else /*if (salary > 100000 && salary >=100000.01)*/ {
tax = 31500 + (salary - 100000)*0.6;
}
printf("\nSalary per year:\t\t $ %.2f\n\n", salary);
printf("Tax ammount per year:\t\t $ %.2f\n\n", tax);
printf("Salary after tax:\t\t $ %.2f\n", salary-tax);
}
在最后else if
, 你真的不需要 if
声明,只是 else
.尽管可以肯定(并且为了清楚起见)包含它也很好。但是,您绝对不需要 ** salary >=100000.01)
>=
只会评估为 true
如果salary > 100000
已经评估为 true
.和 &&
将评估为 true
仅当双方评估为 true
.唯一可能为真而另一个为假的情况是,如果有人输入奇数工资 (100000.005),但即使输入了这个工资,他们仍然需要在这个税级中。
无论如何,你的printf
语句现在包含在 else
中if(salary<0) {}else{}
的 block block ,所以他们只会在薪水 >= 0 时打印。
关于c++ - 税务计算器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19309963/