黑月黄龙 发表于 2021-10-14 20:11:33

代码结果不懂

#include <stdio.h>

int main()
{
      int a = 2, b = 1;

      printf("%d\n", a / 'b');

      return 0;      
}
为什么输出的会是零呢?

小甲鱼的铁粉 发表于 2021-10-14 20:53:23

b不能用''括起来

#include <stdio.h>

int main()
{
      int a = 2, b = 1;

      printf("%d\n", a / b);

      return 0;      
}

jhq999 发表于 2021-10-14 21:30:28

‘b’是字符b,值是0x62,和变量b没有关系

傻眼貓咪 发表于 2021-10-14 22:18:20

#include <stdio.h>
#include <math.h>

int main(){
    int a = 2, b = 1;
    printf("%d \n", a/'b');      // 表示变量 a 除字符 b 如同 2/98 = 0 ( 打印 %d, 2/98 变 0,字符 b 在 ASCII里编号是 98)
    printf("%f \n", (float)a/'b'); // 表示变量 a 除字符 b 如同 2/98 = 0.020408 ( 打印 %f, 2/98 变 0.020408,字符 b 在 ASCII里编号是 98)
    printf("%d \n", a/b);          // 表示变量 a 除变量 b
}0
0.020408
2

黑月黄龙 发表于 2021-10-16 09:31:29

傻眼貓咪 发表于 2021-10-14 22:18


整型输出是抹掉小数点后的数码?

黑月黄龙 发表于 2021-10-16 09:37:31

小甲鱼的铁粉 发表于 2021-10-14 20:53
b不能用''括起来

你的b没用单引号引起来

傻眼貓咪 发表于 2021-10-16 10:20:51

黑月黄龙 发表于 2021-10-16 09:31
整型输出是抹掉小数点后的数码?

整型输出是取上值,比如 3.14 变成 3,5.98 变成 5(也就是你理解的那样,抹掉小数点后的数码)

整数除整数 得整数
整数除浮点数 得浮点数
浮点数除浮点数 得浮点数
int a = 5.98(这里 a 自然变成 5,因为定义 a 是整数,取上值)
float b = 15(这里 b 自然变成 15.0,因为定义 b 是浮点数)
页: [1]
查看完整版本: 代码结果不懂