| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 487 人关注过本帖
标题:百例中的题~结果不对
只看楼主 加入收藏
s123456
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-12-16
收藏
 问题点数:0 回复次数:7 
百例中的题~结果不对

   企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?

这是问题:
我根据资料编的 可以运行但是 结果是不正确的~请帮忙看一下吧

请C爱好者加我~67969323


#include<stdio.h>
void main(){
long int i;
int a1,b2,c3,d4,e5,k ;

scanf("%d",&i);
a1= 100000*0.100;
b2=a1+100000*0.075;
c3=b2+200000*0.050;
d4=c3+200000*0.030;
e5=d4+400000*0.015;
if(i<=100000)
k=i*0.10;
else if(i<=200000)
k=a1+(i-100000)*0.075;
else if(i<=400000)
k=b2+(i-200000)*0.050;
else if(i<=600000)
k=c3+(i-400000)*0.030;
else if(i<=1000000)
k=d4+(i-600000)*0.015;
else k=e5+(i-1000000)*0.001;
printf("%d\n",k);}

搜索更多相关主题的帖子: 结果 
2006-08-13 09:41
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
晕了,嘿嘿

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-13 21:18
天下行
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-8-11
收藏
得分:0 
以下为楼主的源程序:

#include<stdio.h>
void main(){
long int i;
int a1,b2,c3,d4,e5,k ;scanf("%d",&i);
a1= 100000*0.100;
b2=a1+100000*0.075;
c3=b2+200000*0.050;
d4=c3+200000*0.030;
e5=d4+400000*0.015;
if(i<=100000)
k=i*0.10;
else if(i<=200000) /*应改为 else if(i>100000&&i<=200000) 下面的类似地改*/
k=a1+(i-100000)*0.075;
else if(i<=400000)
k=b2+(i-200000)*0.050;
else if(i<=600000)
k=c3+(i-400000)*0.030;
else if(i<=1000000)
k=d4+(i-600000)*0.015;
else k=e5+(i-1000000)*0.001;
printf("%d\n",k);}

错在那些if语句里的条件,你想想,如果某个条件满足了,后面的条件必然会满足,最后的k是由同一个式子计算得到的


2006-08-13 21:28
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
楼上的说得并不正确,
如果楼主用的是TC类软件,
问题出在int型溢出了.用long型就可以。
至于你里面那些数字,我没仔细看,烦.

对不礼貌的女生收钱......
2006-08-13 21:36
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
以下是引用s123456在2006-8-13 9:41:00的发言:

   企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?

这是问题:
我根据资料编的 可以运行但是 结果是不正确的~请帮忙看一下吧

请C爱好者加我~67969323


#include<stdio.h>
void main(){
long int i;
int a1,b2,c3,d4,e5,k ;

scanf("%ld",&i);
a1= 100000*0.100;
b2=a1+100000*0.075;
c3=b2+200000*0.050;
d4=c3+200000*0.030;
e5=d4+400000*0.015;
if(i<=100000)
k=i*0.10;
else if(i<=200000)
k=a1+(i-100000)*0.075;
else if(i<=400000)
k=b2+(i-200000)*0.050;
else if(i<=600000)
k=c3+(i-400000)*0.030;
else if(i<=1000000)
k=d4+(i-600000)*0.015;
else k=e5+(i-1000000)*0.001;
printf("%d\n",k);}

这样就对了


人生没有彩排,每天都是现场直播~~~
2006-08-13 22:31
luori446
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-13
收藏
得分:0 

以下为楼主的源程序:


#include<stdio.h>
void main(){
long int i;
int a1,b2,c3,d4,e5,k ;

scanf("%d",&i);
a1= 100000*0.100;
b2=a1+100000*0.075;
c3=b2+200000*0.050;
d4=c3+200000*0.030;
e5=d4+400000*0.015;
if(i<=100000)
k=i*0.10;
else if(i<=200000)
k=a1+(i-100000)*0.075;
else if(i<=400000)
k=b2+(i-200000)*0.050;
else if(i<=600000)
k=c3+(i-400000)*0.030;
else if(i<=1000000)
k=d4+(i-600000)*0.015;
else k=e5+(i-1000000)*0.001;
printf("%d\n",k);}
上面的i类型不能定义为long型,还有你最后循环的提成0.001应改为0.01

2006-08-14 10:30
天下行
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-8-11
收藏
得分:0 
问4楼的
如果i<100000
是否i<=20000?
。。。。。。。。。。。。。
是否i<=1000000?
如果是,最终的k是否是最后一个表达式算出的?

2006-08-15 02:26
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用天下行在2006-8-15 2:26:12的发言:
问4楼的
如果i<100000
是否i<=20000?
。。。。。。。。。。。。。
是否i<=1000000?
如果是,最终的k是否是最后一个表达式算出的?

LZ已经写了else if.


对不礼貌的女生收钱......
2006-08-15 19:27
快速回复:百例中的题~结果不对
数据加载中...
 
   



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

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