你这个类型不对,temp是float类型,而case后面的是整形,这样肯定不对啊。而且为什么要除以100呢,这样写有点简单问题复杂化,为什么不能直接
switch(sum)
{
case sum<100:d=0 break;
case sum<200&&sum>=100:d=0.5 break;
......
}
switch()的参数必须为整数,你的temp 是float 类型的,所以会出现错误,将temp改正为int型就可以了。。。
给你改完了,你自己看看吧
#include
main()
{
int temp;
float a,b,c,d,sum,total;
printf("请输入打印纸、墨盒、光盘的数量:");
scanf("%f%f%f",&a,&b,&c);
sum=a*18+b*132+4.5*c;
if(sum>=500) temp=5;
else temp=sum/100;
switch(temp)
{
case 0:d=0;break;
case 1:d=0.05;break;
case 2:d=0.06;break;
case 3:d=0.07;break;
case 4:d=0.08;break;
case 5:d=0.1;break;
}
total=sum*(1-d);
printf("total=%.2f\n",total);
}
我明白了 成粗没有问题 你输入的问题 用三个数据用逗号隔开就对了