过客2007 - 2007-6-4 12:23:00
main()
{
int w,x;/* w是表示重量,x表示总金额.*/
scanf("%d",&w);
if(w>=5)/*重量大于5kg,九折优惠*/
x=w*1.5*0.9;/*单价是:1.5元*/
else
x=w*1.5;
printf("x=%d",x);/*输出金额*/
}
这里有些算法是正确的有些不是正确的,请问,该怎么弄好?
风的唏嘘 - 2007-6-4 14:13:00
【回复“过客2007”的帖子】把x的变量类型定义为float型,把printf("x=%d",x);改为printf("x=%f",x);就可以了
风的唏嘘 - 2007-6-4 14:56:00
【回复“过客2007”的帖子】其实你这个程序也没错,因为表达式的计算结果是双精度型的,赋给整型变量x时系统会自动进行数据转换,跟用强制类型转换的效果是一样的,只不过数据精度不高而已
过客2007 - 2007-6-4 22:35:00
再次谢谢啦。
© 2000 - 2026 Rising Corp. Ltd.