如果我把2,然后printf结果将是n = 2 m = 8 q = 32为什么?

时间:2018-06-01 01:25:11

标签: c scanf

我在scanf输入2但输出数字是3?为什么?

enter image description here

我试过2

 scanf("%d", &n, &m, &q);

但是3号输出

为什么?

2 个答案:

答案 0 :(得分:2)

由于您的%d格式字符串中只有一个scanf,因此只会读取一个数字,并将其放入第一个变量n

使用

打印变量时
printf("m%d n%d q%d", m, n, q);

它打印3个数字,因为格式字符串中有%d次。

它会打印n2,因为它是您输入的值。其他两个变量具有不确定的值,因为您从未初始化它们,scanf()没有格式运算符来填充它们。

答案 1 :(得分:1)

如果您说scanf("%d", ... );,您只能阅读并存储一个号码,因为您有%d个号码。如果您只有一个号码来阅读他,请只写scanf("%d", &m );,如果您想阅读两个号码,请写scanf("%d%d", &m,&n );,三个号码scanf("%d%d%d", &m,&n,&q );,...