我这个程序为什么无论输入多少输出都是0?
#include <stdio.h>int main()
{
int total, a, b, c, d, level;
float sum;
printf("请输入此月收入(整数)\n");
scanf("%d", &total);
if(total > 3500)
{
level++;
a = total - 3500;
}
else if (total > 5000)
{
level++;
b = total - 5000;
}
else if (total > 8000)
{
level++;
c = total - 8000;
}
else if (total > 12500)
{
level++;
d = total - 12500;
}
else
{
printf("免税\n");
}
printf("%d", b);
return 0;
}
图片是我们学校的这次作业 假设我输入6000,然后开始第一个判断,6000>3500,所以a = 6000 - 3500,
但是,你后面写的是else if,也就是说,第一个判断完之后,不会继续判断。你应该从大到小判断。 qiuyouzhi 发表于 2020-5-23 11:36
假设我输入6000,然后开始第一个判断,6000>3500,所以a = 6000 - 3500,
但是,你后面写的是else if,也 ...
这样,我试试看
qiuyouzhi 发表于 2020-5-23 11:36
假设我输入6000,然后开始第一个判断,6000>3500,所以a = 6000 - 3500,
但是,你后面写的是else if,也 ...
我刚刚试了一下,确实可以,但假如值在大一点,下面会停止判断,但我想让全部都判断一次应该用什么函数比较好 joker__ 发表于 2020-5-23 11:47
我刚刚试了一下,确实可以,但假如值在大一点,下面会停止判断,但我想让全部都判断一次应该用什么函数比 ...
switch? qiuyouzhi 发表于 2020-5-23 11:51
switch?
switch的话case后面不能跟范围,那怎么判断,有点难受 qiuyouzhi 发表于 2020-5-23 11:51
switch?
case 后面只能是常量,不如 goto? 永恒的蓝色梦想 发表于 2020-5-23 11:57
case 后面只能是常量,不如 goto?
goto老师说这东西不能用,就很烦 qiuyouzhi 发表于 2020-5-23 11:36
假设我输入6000,然后开始第一个判断,6000>3500,所以a = 6000 - 3500,
但是,你后面写的是else if,也 ...
我那个语句假如不加else只用if就可以直接一路执行下去了,谢谢提醒,是我傻了 你这个 level++有啥用呢?
页:
[1]