这个C程序哪里错了?

橄榄丝 2006-08-07 04:55:54
#include<stdio.h>

void main()
{
double profit,prize,a,b,c,d,e,f,sum; //profit表示利润,prize表示奖金,单位是万。
printf("\n请输入利润:");
scanf("%f",&profit);

switch(profit)
{
case(profit<=10):
a=profit*0.1;
printf("\n10万元内的奖金为:%f",a);
break;
case(profit>10&&profit<20):
b=(profit-10)*0.075;
printf("\n高于10万元部分的奖金为:%f",b);
break;
case(profit>20&&profit<40):
c=(profit-20)*0.05;
printf("\n高于20万元部分的奖金为:%f",c);
break;
case(profit>40&&profit<60):
d=(profit-40)*0.03;
printf("\n高于40万元部分的奖金:%f",d);
break;
case(profit>60&&profit<100):
e=(profit-60)*0.1.5;
printf("\n高于60万元部分的奖金:%f",e);
break;
case(profit>100):
f=(profit-100)*0.01;
printf("\n高于100万元部分的奖金:%f",f);
break;
default:
printf("\n无法计算\n");
}
sum=a+b+c+d+e+f;
printf("\n发放奖金的总和是:%f",sum);
}
...全文
156 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liufan2005 2006-08-07
  • 打赏
  • 举报
回复
#include<stdio.h>

void main()
{
double profit,prize,a,b,c,d,e,f,sum;
printf("\n请输入利润:");
scanf("%f",&profit);

switch(profit) //profit必须为整型,或char
{
case(profit<=10): //case语句必须是常量表达式
a=profit*0.1;
printf("\n10万元内的奖金为:%f",a);
break;
case(profit>10&&profit<20):
b=(profit-10)*0.075;
printf("\n高于10万元部分的奖金为:%f",b);
break;
case(profit>20&&profit<40):
c=(profit-20)*0.05;
printf("\n高于20万元部分的奖金为:%f",c);
break;
case(profit>40&&profit<60):
d=(profit-40)*0.03;
printf("\n高于40万元部分的奖金:%f",d);
break;
case(profit>60&&profit<100):
e=(profit-60)*0.1.5;
printf("\n高于60万元部分的奖金:%f",e);
break;
case(profit>100):
f=(profit-100)*0.01;
printf("\n高于100万元部分的奖金:%f",f);
break;
default:
printf("\n无法计算\n");
}
sum=a+b+c+d+e+f;
printf("\n发放奖金的总和是:%f",sum);
}
晨星 2006-08-07
  • 打赏
  • 举报
回复
switch不能这样代替if/else的。
case后面必须跟一个常量。

而退一万步说,既使C语言允许case后面跟带变量的表达式,这样也没意义的,因为你跟在case后面的都是关系表达式,关系表达式的值要么是0,要么是1,没有第三种可能,换句话说,你里边肯定有好多重复的case分支(多个0或多个1)。
OOPhaisky 2006-08-07
  • 打赏
  • 举报
回复
case(profit<=10)....
这一系列都错了,case表达式中必须放的是整型常量(必须是编译时期可以判断出值的常量),而你放的是bool表达式。
你可能认为bool表达式是“整型”系列阿,但是很遗憾它不是“常量”,更别提“编译时期可以判断出值”了。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧