江苏工业峰谷电价时段:请教,关于C语言输出结果的小数部分

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 10:17:08
有下面这样一个程序:
main()
{float a,b,c;
scanf("%f %f",a,b);
c=a+b;
printf("%f+%f=%f",a,b,c);
}
例如:输入 1 2.5
回车后得到如下结果:1.000000+2.500000=3.500000

请问如何完成以下功能:
输出结果的时候.
没有小数的时候,只显示整数部分,
有小数的时候,才显示小数部分,但后面的0不显示.

万分感谢.采纳答案后.补分.

那你可以这么做:(主要是判断是否有小数的问题)
float a,b,c;

c = a + b;

int d;
将c强制类型转换成整数 d = c;
if(d - c == 0)
/*没有小数*/
printf(d);
else
printf(c);
这样可能能实现,要不行你可以找找关于位运算的知识,也许可以解决(一般的C教材中都有),这些希望能给你些帮助!

float改成int

完全满足你要求恐怕相当麻烦了
不知道有没有好办法
不过一般实型运算取1位小数就行了
可以这样改改
printf("%1.1f+%1.1f=%1.1f",a,b,c);
这样整型实型都取1位小数

应该把a,b,c定义为整型吧

先取整,再用原来的数去模除取整后的数,如果结果大于0,就是有小数,否则没有小数。