2

刚开始学C,才知道/符号是除法运算符。我正在试验,想知道为什么 5/7 printf 是数字 0。

这是我的程序:

#include<stdio.h>

main()
{
    int n;
    n = 5/7;
    printf("%d", n);
}

谢谢!

4

2 回答 2

7

这是因为整数除法。 5/7make 0.71..,这个数字的整数部分是0,因此它打印0。要解决此问题,请使用float类型(或双精度类型)变量以及常量,例如尝试:

float f = 5.0 / 7.0;

f使用格式字符串打印变量%f

于 2013-07-22T07:56:35.910 回答
3

因为它是0

5/7是整数除法,因为 5 和 7 都是整数。整数除法 5/7 的结果是 0。

n,您将结果分配给的变量也是int.

如果你写,你会有浮点除法5.0/7.0。但是,由于您将结果分配给 n (同样是 an int),它的值也将为 0。当然,如果您将结果分配给5.0/7.0变量double,您会得到小数。

于 2013-07-22T07:59:07.173 回答