C语言中,"printf ("%f",(int)(2.5*3)/3);"的输出结果是怎么算的
发布网友
发布时间:2024-10-20 10:30
我来回答
共5个回答
热心网友
时间:2024-11-15 14:48
您这是竞赛题吗?
答案是0.000000,因为printf格式问题。若是:
#include <stdio.h>
void main ()
{
float a=(int)(2.5*3)/3;
printf("%f",a);
getchar();/*这是个人喜好,请无视之*/
}
的话,会是2.000000。
int的优先值有点低,a的赋值是2.5*3/=7.5,int一下,变成了7。再除一下,变成了2.3333。再float一下,变成了2.000000。就是这样。
热心网友
时间:2024-11-15 14:49
int强制转换的时候转的时(2.5*3),所以最终的值为7/3=2但是在这里,int型的数据如果要打印成float的话结果都为0.00000000.不管这里的int值是多少。。
热心网友
时间:2024-11-15 14:49
2.5*3=7.5
7.5/3=2.5
然后强制整形(int)就是2
以浮点型输出,小数位数按6位计算的话是2.000000
应该是这样吧
热心网友
时间:2024-11-15 14:50
2.5*3=7.5 强制输出整形为7
浮点输出7/3=2.333333
热心网友
时间:2024-11-15 14:51
0.000000
已运行