C语言的IF嵌套循环问题 初学

#include
#include

#define TYPE_1 0.1
#define TYPE_2 0.075
#define TYPE_3 0.05
#define TYPE_4 0.03
#define TYPE_5 0.015
#define TYPE_6 0.01

int main(void)
{
int i;
int j = 0;
printf("请输入你的利润:");
scanf("%d",&i);//得到利润钱数
if(i>0)
{
if(i<=10)
{
j = i*TYPE_1;
}else if(10 {
j = (i-10)*TYPE_1+(i-10)*TYPE_2;//(i-10)*(TYPE_1+TYPE_2)
}else if(20 {
j = (i-20)*TYPE_3;
}else if(40 {
j = (i-40)*TYPE_4;
}else if(60 {
j = (i-60)*TYPE_5;
}else if(i>100)
{
j = (i-100)*TYPE_6;
}else
printf("你的奖金为:%d",i+j);
}
system("pause");
return 0;

}

各位大牛们 能帮忙解答一下问题么 初学者,虽然啃书还是有很多不懂的地方。。

c

3个回答

首先你的计算是有小数的,数据类型类需要设置为float,不能设置为int
其次奖金应该是累加的,不是只计算某一部分的,所以各个阶梯段的奖金都要相加
最后你的数据if else分支中的else部分因该放在if else部分外面。

程序没有编译错误。你有什么问题么?如果程序运行结果和你预期不同,你得给出你的题目是什么

**题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
################################################################
##############################################################
编译后就是一句话 请输入你的利润: 然后输入完点了确定然后什么结果都没有了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问