【发布时间】:2015-09-14 13:23:07
【问题描述】:
我在 C 中有这段代码-
#include <stdio.h>
void main(void)
{
int a=90;
float b=4;
printf("%f",90%4);
}
输出 0.0000,我不明白为什么??? 我知道 90%4 返回 2 并且指定的格式说明符是 %f,这是双精度,但我期望的是 - 它会给出一个错误,但它显示 0.0000 作为输出。 谁能解释一下原因?
【问题讨论】:
-
为什么你认为它会抛出错误?另外,请始终使用
int main()和return 0; -
由于类型不匹配,格式说明符为 %f,返回值为 int。
-
如果它不会显示错误,那么为什么它不显示2.0000
-
这里无用的
a和b有什么意义?你的意思是printf("%f", a % b);?这甚至无法编译,因为%只能对整数类型进行操作