scanf()中如果在%d后面加了一个空格,会使scanf()函数在读数时跳过输入中的空白字符(包括空格、回车等),直到遇到第一个非空白字符出现为止。当你输入完5个数之后,由于你的%d后面带空格,所以scanf仍然在期待出现一个非空白符才结束。你甚至可以在输入完5个数之后,再输入一个字母,也是可以的(只要不是空白字符就行)。这是C语言的特性,你有空可以多读读C标准库的书。
把canf("%d ",&N[i]);改成canf("%d",&N[i]);,即把d后面的那个空格删除。
scanf("%d",&N[i]); //%d后面应该没有空格
既然这样,就换成逐个提示、逐个输入的
~
~
~