企业发放的奖金根据利润提成问题错误求教

outer_star 2013-04-01 04:45:09
是不是数据类型错误?
#include<stdio.h>
int main(void)
{
float sum1=10*0.1;
float sum2=sum1+10*0.075;
float sum4=sum2+20*0.05;
float sum6=sum4+20*0.03;
float sum10=sum6+40*0.015;

float i;
printf("请输入利润,单位为万元:\n ");
scanf("%d",&i); //单位为万元

float profit;
if(i<=10)
profit=i*0.1;
else if(i<=20)
profit=sum1+(i-10)*0.075;
else if(i<=40)
profit=sum2+(i-20)*0.05;
else if(i<=60)
profit=sum4+(i-40)*0.03;
else if(i<=100)
profit=sum6+(i-60)*0.015;
else
profit=sum10+(i-100)*0.01;

printf("你能从利润中获得的提成为:%d\n",profit);
return 0;
}


结果总是0...
...全文
528 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
farmliver 2013-04-02
  • 打赏
  • 举报
回复
引用 2 楼 dy106 的回复:
C/C++ code?123456789101112131415161718192021222324252627282930#include<stdio.h>int main(void){ float sum1=10*0.1; float sum2=sum1+10*0.075; float sum4=sum2+20*0.05; float sum6……
++
e_play 2013-04-01
  • 打赏
  • 举报
回复
printf和scanf系列函数看标准定义,另外看c 隐世类型提升
赵4老师 2013-04-01
  • 打赏
  • 举报
回复
printf里面的%和变量的一一对应关系 scanf里面的%和变量以及变量前加不加&的一一对应关系 是C代码中非常容易出错的地方,而且通常编译还不出错。 所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
_sunshine 2013-04-01
  • 打赏
  • 举报
回复

#include<stdio.h>
int main(void)
{
	float sum1=10*0.1;
	float sum2=sum1+10*0.075;
	float sum4=sum2+20*0.05;
	float sum6=sum4+20*0.03;
	float sum10=sum6+40*0.015;

	float i;
	printf("请输入利润,单位为万元:\n			");
	scanf("%f",&i);             //格式有问题,输入float当然是%f

	float profit;
	if(i<=10)
		profit=i*0.1;
	else if(i<=20)
		profit=sum1+(i-10)*0.075;
	else if(i<=40)
		profit=sum2+(i-20)*0.05;
	else if(i<=60)
		profit=sum4+(i-40)*0.03;
	else if(i<=100)
		profit=sum6+(i-60)*0.015;
	else 
		profit=sum10+(i-100)*0.01;

	printf("你能从利润中获得的提成为:%f\n",profit); //格式有问题,输出float当然是%f
	return 0;
}
仅供参考
jinling4388 2013-04-01
  • 打赏
  • 举报
回复
第12行: scanf("%d",&i); 输入的是一个整数,我没记错的话输入float类型是scanf("%4.4f",&i);

69,382

社区成员

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

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