| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2378 人关注过本帖
标题:为什么输出总为0?
只看楼主 加入收藏
xs_200
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-8-6
收藏
 问题点数:0 回复次数:19 
为什么输出总为0?
企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
#include <stdio.h>
main ()
{
long int i;
int b1,b2,b4,b6,b10,b;
scanf("ld",&i);
b1=100000*0.1;
b2=b1+i*0.075;
b4=b2+i*0.05;
b6=b4+i*0.03;
b10=b6+i*0.015;
if (i<=100000)
b=i*0.1;
else if (i<=200000)
b=b1+(i-100000)*0.075;
else if (i<=400000)
b=b2+(i-200000)*0.05;
else if (i<=600000)
b=b4+(i-400000)*0.03;
else if (i<=1000000)
b=b6+(i-600000)*0.015;
else
b=b10+(i-100)*0.01;
printf("%d",b);
getchar();
}
不管我输入多少数值,输出总是为0,请各位大侠帮我看看错在哪里,谢谢?
搜索更多相关主题的帖子: 输出 
2007-11-12 16:04
devfhpgah
Rank: 1
来 自:江西
等 级:新手上路
帖 子:204
专家分:0
注 册:2007-8-16
收藏
得分:0 
scanf("ld",&i); 这是什么?

int 改为float 或者 double

努力才会成功!
2007-11-12 16:39
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
怎么连个实形类型的变量都没的```??```



女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-11-12 16:50
nianshi
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-7
收藏
得分:0 
scanf("ld",&i);改为:scanf("%ld",&i);
int b1,b2,b4,b6,b10,b; 改为:double b1,b2,b4,b6,b10,b;
printf("%d",b); 改为:printf("%lf",b);

基本的东西都不清楚啊



行至水穷处 坐看去起时
C语言QQ群1:51871776  群2:26313099  群3:47145282
2007-11-12 17:19
叶柄
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-10-17
收藏
得分:0 
呵呵 9494 仔细啊 一个 . 结果也许就不知道哪去了
呵呵
2007-11-12 17:34
jxj777
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-10-27
收藏
得分:0 
哈哈,基础不牢,地动山摇,加油

一个人的力量是缈小的....... 互帮互助才是出路
2007-11-12 18:19
lyl625760
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-10-6
收藏
得分:0 

1.窃以为错不在整实,现在五角的奖金当不多 3.我实在不知为何会错输0,请问getchar();何意?
2.算法本身有误,scanf("ld",&i);这步正确,以长整输出
b1=100000*0.1;
b2=b1+i*0.075;
b4=b2+i*0.05;
b6=b4+i*0.03;
b10=b6+i*0.015;再读题;else if (i<=400000)
b=b2+(i-200000)*0.05;此时当b=10000*0.1+10000*0.075+(i-20000)*0.05
else if (i<=600000)
b=b4+(i-400000)*0.03;
else if (i<=1000000)
b=b6+(i-600000)*0.015;
else
b=b10+(i
2007-11-12 18:35
zhuxy3011
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-10-17
收藏
得分:0 
#include <stdio.h>
void main ()
{
double float i;
double float b1,b2,b4,b6,b10,b;
scanf("%f\n",&i);
b1=100000*0.1;
b2=b1+100000*0.075;
b4=b2+200000*0.05;
b6=b4+200000*0.03;
b10=b6+400000*0.015;
if (i<=100000)
b=i*0.1;
else if (i<=200000)
b=b1+(i-100000)*0.075;
else if (i<=400000)
b=b2+(i-200000)*0.05;
else if (i<=600000)
b=b4+(i-400000)*0.03;
else if (i<=1000000)
b=b6+(i-600000)*0.015;
else
b=b10+(i-1000000)*0.01;
printf("%.2f\n",b);
getchar();
}
基本上还是你的程序结构。
楼主逻辑有点混乱,要么就是对编译顺序一点都不了解。
另外正如三楼所说,变量要定义成实型的,要不然如果I=999999,岂不是要出错或者说是不精确。

2007-11-12 18:49
刹那公子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-9-26
收藏
得分:0 

算法也很有问题
就以i=25万为例
按题目的意思提成应为b=100000*0.1+100000*0.075+50000*0.05=20000

而照程序运算的话b=100000*0.1+250000*0.075+50000*0.05=31250
显然不对啊


2007-11-12 18:52
lyixh
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-9-28
收藏
得分:0 
#include <stdio.h>
main ()
{
long int i;
float b;
scanf("ld",&i);
if (i<=100000)
b=i*0.1;
else if (i<=200000)
b=b+(i-100000)*0.075;
else if (i<=400000)
b=b+(i-200000)*0.05;
else if (i<=600000)
b=b+(i-400000)*0.03;
else if (i<=1000000)
b=b+(i-600000)*0.015;
else
b=b+(i-100)*0.01;
printf("%f",b);
getchar();
}
再试哈

2007-11-12 19:37
快速回复:为什么输出总为0?
数据加载中...
 
   



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

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