菜鸟请教一个简单问题~~

gx168853 2009-09-15 04:58:04
题目:企业发放的奖金根据利润提成。利润(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()
{
double i,sum,sum1,sum2,sum3,sum4,sum5,sum6;
int a;
sum1=i*0.1;
sum2=sum1+(i-100000)*0.075;
sum3=sum2+(i-200000)*0.05;
sum4=sum3+(i-400000)*0.03;
sum5=sum4+(i-600000)*0.015;
sum6=sum5+(i-1000000)*0.01;
scanf("%ld",&i);
if(i<=1000000)
if(600000<i<=1000000) a=5;
else if(400000<i<=600000) a=4;
else if(200000<i<=400000) a=3;
else if(100000<i<=200000) a=2;
else if(0<i<=100000) a=1;
else a=6;
switch(a)
{
case 1: sum=sum1;break;
case 2: sum=sum2;break;
case 3: sum=sum3;break;
case 4: sum=sum4;break;
case 5: sum=sum5;break;
case 6: sum=sum6;break;
}
printf("sum=%ld",sum);
}用的c-free编译器,编译没有任何错误,警告。输入值得时候为什么没有打印出结果啊?
...全文
143 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gx168853 2009-09-16
  • 打赏
  • 举报
回复
非常感谢各位抽空指导,感激不尽了!!
todo9351 2009-09-15
  • 打赏
  • 举报
回复
忽然看到一个用 if 语句时,还是用一下大括号吧 {}
^_^
todo9351 2009-09-15
  • 打赏
  • 举报
回复
注意输入输出的格式问题, 还有语句的顺序
输入double的语句
scanf("%lf", &i); // 注意是lf, 如果是f会怎么样呢,你试下
输出
printf("%f", i); // 这里 %f 和 %lf 都一样,

其它的问题如上边的回复的了,
还有就是变量命名了, 可能是用了谭浩强的书,怎么会用i 来表示利润呢, profit? 呵呵
kouwenlong 2009-09-15
  • 打赏
  • 举报
回复
输出格式改下printf("sum =%g",sum);或者%f都可以。
abcdef0966 2009-09-15
  • 打赏
  • 举报
回复
好多错啊,帮你随便改了下
warning也要受到重视啊!


#include <stdio.h> 
main()
{
double i,sum,sum1,sum2,sum3,sum4,sum5,sum6;
int a;
scanf("%ld",&i);
sum1=i*0.1;
sum2=sum1+(i-100000)*0.075;
sum3=sum2+(i-200000)*0.05;
sum4=sum3+(i-400000)*0.03;
sum5=sum4+(i-600000)*0.015;
sum6=sum5+(i-1000000)*0.01;

if(i <=1000000)
if(600000 < i && i <=1000000) a=5;
else if(400000 < i && i <=600000) a=4;
else if(200000 <i && i <=400000) a=3;
else if(100000 <i && i <=200000) a=2;
else if(0 <i && i<=100000) a=1;
else a=6;
switch(a)
{
case 1: sum=sum1;break;
case 2: sum=sum2;break;
case 3: sum=sum3;break;
case 4: sum=sum4;break;
case 5: sum=sum5;break;
case 6: sum=sum6;break;
}
printf("sum=%f",sum);
}
dclchj 2009-09-15
  • 打赏
  • 举报
回复

double i,sum,sum1,sum2,sum3,sum4,sum5,sum6;
int a;
sum1=i*0.1; //这里i没有赋值过;
HelloCChao 2009-09-15
  • 打赏
  • 举报
回复
那些sum应该是在输入i后计算
wuyu637 2009-09-15
  • 打赏
  • 举报
回复
printf("sum=%ld",sum);

输出的格式不对。。double的格式输出符是啥啊?

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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