【发布时间】:2020-03-26 04:59:34
【问题描述】:
#include <stdio.h>
main()
{
int c=2,n=5;
float percent;
percent=(c/n)*100;
printf("%.3f\n",percent);
}
请问这段代码有什么问题..?
【问题讨论】:
标签: c variables floating-point
#include <stdio.h>
main()
{
int c=2,n=5;
float percent;
percent=(c/n)*100;
printf("%.3f\n",percent);
}
请问这段代码有什么问题..?
【问题讨论】:
标签: c variables floating-point
percent=(c/n)*100;
2/5 ---> 0 because it is integer division
0*100 ---> 0
是整数除法,所以可以改成
percent=((float)c/n)*100;
2/5 ----> 0.4
0.4*100 ----> 40.0
【讨论】:
你正在做整数除法。它总是截断值。确保先转换其中一个,然后它将使用浮点除法。
#include <stdio.h>
int main()
{
int c=2,n=5;
float percent;
percent=((float)c/n)*100;
printf("%.3f\n",percent);
}
【讨论】:
整数之间的除法运算产生另一个整数。由于 c、n 和 100 是整数,因此您会得到一个整数作为 .0 的结果,因为类型被声明为浮点数。这里的其他答案应该会产生您想要的答案。
【讨论】: