好的,我必须用C计算这个税率。基本上,前10,000个不征税,接下来的30,000个税10%,接下来的20,000个税20%。例如: 你的收入是60,000。 前10,000没有征税,所以现在剩下50,000。 其中30,000个中的5万个税率为10%,因此为3,000。 你现在有20,000,括号表示下一个20,000的税率是20%,所以4,000。 总税收将等于3,000 + 4,000,即7,000。 现在我的代码没有提供正确的总数。请注意,这是我在C的第一个学期。
// Aundray Ortiz
// 2/22/15
// COP3223
// tax
int main(){
int income;
int total = 0;
printf("What is your income in dollars?\n");
scanf("%d", &income);
int for_free;
int next_bracket;
for_free = income - 10,0000;
next_bracket = for_free - 30,000;
if (for_free >= 0){
total = for_free*.1;
}
if (next_bracket >= 0){
total = total + (next_bracket*.2);
}
printf("You will pay %d in taxes.", total);
return 0;
}
答案 0 :(得分:1)
您的代码无效的一个原因是您没有将for_free
限制为30000。
另一个问题是10,0000
和30,000
中存在语法错误(除了错误的值)。您必须删除逗号。
由于使用double
进行total = for_free*.1;
计算,还有一个编译器警告,当double
值写回int
时,它可能会截断#include <stdio.h>
#define FOR_FREE 10000
#define LOW_BRACKET 30000
#define BIG_BRACKET 20000
#define LOW_RATE 0.10
#define HIGH_RATE 0.20
#define HUGE_RATE 0.50
int main(void) {
int income = 0;
int lowtaxable = 0, hightaxable = 0, hugetaxable = 0;
double taxdue = 0;
printf("What is your income in dollars?\n");
scanf("%d", &income);
lowtaxable = income - FOR_FREE;
if (lowtaxable > LOW_BRACKET) {
hightaxable = lowtaxable - LOW_BRACKET;
lowtaxable = LOW_BRACKET;
}
if (hightaxable > BIG_BRACKET) {
hugetaxable = hightaxable - BIG_BRACKET;
hightaxable = BIG_BRACKET;
}
taxdue = LOW_RATE * lowtaxable
+ HIGH_RATE * hightaxable
+ HUGE_RATE * hugetaxable;
printf("You will pay %.2f in taxes.\n", taxdue);
return 0;
}
值
这是清理过的代码,包括更高的税率。
{{1}}