企业发放的奖金根据利润提成有关问题异常求教
企业发放的奖金根据利润提成问题错误求教
是不是数据类型错误?
结果总是0...
------解决方案--------------------
第12行: scanf("%d",&i);
输入的是一个整数,我没记错的话输入float类型是scanf("%4.4f",&i);
------解决方案--------------------
仅供参考
------解决方案--------------------
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
------解决方案--------------------
printf和scanf系列函数看标准定义,另外看c 隐世类型提升
------解决方案--------------------
++
是不是数据类型错误?
#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...
------解决方案--------------------
第12行: scanf("%d",&i);
输入的是一个整数,我没记错的话输入float类型是scanf("%4.4f",&i);
------解决方案--------------------
#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;
}
仅供参考
------解决方案--------------------
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
------解决方案--------------------
printf和scanf系列函数看标准定义,另外看c 隐世类型提升
------解决方案--------------------
++