I just started learning C, and I learnt that the / sign is the division operator. I was experimenting, and was wondering why 5/7 printf the number 0.

Here is my program:

#include<stdio.h>

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

Thank you!

有帮助吗?

解决方案

This is because of integer division. 5/7 makes 0.71.., and the integer part of this number is 0, hence it prints 0. To solve this problem use float type (or double type) variables as well as constants for example try:

float f = 5.0 / 7.0;

print variable f with format string %f

其他提示

Because it is 0.

5/7 is an integer division, because both 5 and 7 are integers. The result of the integer division 5/7 is 0.

n, the variable which you assign the result to, is also an int.

You'd have floating point division if you wrote 5.0/7.0. However, since you assign the result to n which is, again, an int, its value would be also 0. Of course, if you assign the result of 5.0/7.0 to a double variable, you get decimals in it.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top