C语言用scanf给数组赋值问题

2025-04-16 01:51:53
推荐回答(4个)
回答1:

scanf()中如果在%d后面加了一个空格,会使scanf()函数在读数时跳过输入中的空白字符(包括空格回车等),直到遇到第一个非空白字符出现为止。当你输入完5个数之后,由于你的%d后面带空格,所以scanf仍然在期待出现一个非空白符才结束。你甚至可以在输入完5个数之后,再输入一个字母,也是可以的(只要不是空白字符就行)。这是C语言的特性,你有空可以多读读C标准库的书。

回答2:

把canf("%d ",&N[i]);改成canf("%d",&N[i]);,即把d后面的那个空格删除。

回答3:

scanf("%d",&N[i]); //%d后面应该没有空格

回答4:

既然这样,就换成逐个提示、逐个输入的

~
~
~