一道c的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 08:57:45
main()
{
printf("%f",1*7%3/4);
}

我觉得这个应该输出0.25的阿
为什么会出错呢?

为什么是0.25呢?
你的程序我运行了一下,根本就是错误
你是不是这个意思?
main()
{ float a;
a=1*7%3/4;
printf("%f",a);
}

这样的话,可以出来正确结果0.000000
给你讲解以下
* % / 三者是同一优先级
所以a=1*7%3/4;会从左向右运算
首先是1*7=7
然后7%3=1
最后是你不懂的地方1/4=0
“/”是取整的意思一除以四等于0.25,取整后就成0了,因为是float型
所以结果是0.000000

应该是0.000000,因为1*7%3/4做的是整型的除法,结果为0,显示为f格式后为0.000000
要想是0.25,应该写成:
printf("%.2f",1*7%3/4.0);