LEESP 发表于 2020-8-17 16:52:20

为什么我求的值是0?

#include "stdafx.h"


int main()
{
        int a=2;
        int b=4;
        int s;
        s = (1 / 2) * (a*b);
        printf("%d\n", s);
        return 0;
}

zltzlt 发表于 2020-8-17 16:53:32

因为 (1 / 2) 是整数除法,整数除法是取商,截断小数部分,所以 (1 / 2) 的值为 0 。

将其中一个数字改为浮点数就可以了:

#include "stdafx.h"


int main()
{
      int a=2;
      int b=4;
      int s;
      s = (1.0 / 2) * (a*b);
      printf("%d\n", s);
      return 0;
}

51Arduino32 发表于 2020-8-17 17:03:34

因为1/2=0·············1
      0 乘 任何数都为 0
{:10_256:}

LEESP 发表于 2020-8-21 21:03:45

zltzlt 发表于 2020-8-17 16:53
因为 (1 / 2) 是整数除法,整数除法是取商,截断小数部分,所以 (1 / 2) 的值为 0 。

将其中一个数字改 ...

#include "stdafx.h"

int main()
{
        float a=2.0;
        float b=4.0;
        float s;
        float n;
        n = s * (a*b);
        printf("%d\n", n);

}


还是0啊?

xiao太阳 发表于 2020-8-22 09:28:01

我运行为什么出错的

xiao太阳 发表于 2020-8-22 09:28:59

xiao太阳 发表于 2020-8-22 09:28
我运行为什么出错的

#include "stdafx.h"就是这里出错了
页: [1]
查看完整版本: 为什么我求的值是0?