| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 808 人关注过本帖
标题:我个if改switch序问题~
只看楼主 加入收藏
yph124911594
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-7-25
收藏
 问题点数:0 回复次数:9 
我个if改switch序问题~

程序2】 题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      
2.程序源代码:
main()
{ long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;
bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
 if(i<=100000)
  bonus=i*0.1;
 else if(i<=200000)
     bonus=bonus1+(i-100000)*0.075;
    else if(i<=400000)
        bonus=bonus2+(i-200000)*0.05;
       else if(i<=600000)
           bonus=bonus4+(i-400000)*0.03;
          else if(i<=1000000)
              bonus=bonus6+(i-600000)*0.015;
             else
              bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}

中间多重if语句那能用switch语句改吗~~我这样改可以吗~~~~


main()
{ long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);

bonus1=100000*0.1;
bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
switch(i)
{case (i>0)&&(i<=100000):bonus=i*0.1;break;
case (i>100000)&&(i<=200000):bonus=bonus1+(i-100000)*0.075;break;
case (i>200000)&&(i<=400000):bonus=bonus2+(i-200000)*0.05;break;
case (i>400000)&&(i<=600000):bonus=bonus4+(i-400000)*0.03;break;
case (i>600000)&&(i<=1000000):bonus=bonus6+(i-600000)*0.015;break;
case (i>1000000):bonus=bonus10+(i-1000000)*0.01;break;
printf("bonus=%d",bonus); }

}


对不对!!希望指点!!我运行不了!!!不知道哪错了!我看起来没有问题啊

搜索更多相关主题的帖子: switch 
2007-07-26 23:22
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
switch(i)
{case (i>0)&&(i<=100000):bonus=i*0.1;break;
case (i>100000)&&(i<=200000):bonus=bonus1+(i-100000)*0.075;break;
case (i>200000)&&(i<=400000):bonus=bonus2+(i-200000)*0.05;break;
case (i>400000)&&(i<=600000):bonus=bonus4+(i-400000)*0.03;break;
case (i>600000)&&(i<=1000000):bonus=bonus6+(i-600000)*0.015;break;
case (i>1000000):bonus=bonus10+(i-1000000)*0.01;break;

case (i>0)&&(i<=100000)……

和这个类似的全错!

自我放逐。。。
2007-07-27 07:14
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
收藏
得分:0 
case (i>0)&&(i<=100000):

switch(i/100000)
{
case 1:
case 2:
...
default:
}
2007-07-27 07:24
yph124911594
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-7-25
收藏
得分:0 

那要怎么改啊!谁能教下我!怎么用switch改

2007-07-27 08:43
libin6820
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-6-29
收藏
得分:0 
这个好象是谭书上的题吧!·好象有点错误,我也是运行不起来,郁闷
2007-07-27 09:13
yph124911594
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-7-25
收藏
得分:0 

没人能告诉我吗!能不能这样改!可以的话要怎么改

2007-07-27 11:36
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
以下是引用libin6820在2007-7-27 9:13:36的发言:
这个好象是谭书上的题吧!·好象有点错误,我也是运行不起来,郁闷

是你错

case后则值必须是确定的

不能是区间!


自我放逐。。。
2007-07-27 13:23
aoaoaoao
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-5-14
收藏
得分:0 
case 后边 是常量表达式
2007-07-27 13:37
y218z903
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-7-27
收藏
得分:0 

main()
{ long int i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;
bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
switch(i/100000)
{
case 0: bonus=i*0.1; break;
case 1: bonus=bonus1+(i-100000)*0.075; break;
case 2:
case 3: bonus=bonus2+(i-200000)*0.05; break;
case 4:
case 5: bonus=bonus4+(i-400000)*0.03; break;
case 6:
case 7:
case 8:
case 9: bonus=bonus6+(i-600000)*0.015;break;
default: bonus=bonus10+(i-1000000)*0.01; break;

}

printf("bonus=%d",bonus);

}
应该是这样的吧....!!...


2007-07-28 02:26
卐寒冬卍
Rank: 2
等 级:论坛游民
帖 子:80
专家分:17
注 册:2013-3-19
收藏
得分:0 
运行一下不就知道了

学无先后,达者为师
2013-04-06 16:54
快速回复:我个if改switch序问题~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063955 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved