#include<stdio.h>
int main(){
int arr[10];
printf("Enter: ");
for(int i=0;i<6;i++){
scanf("%dn",&arr[i]);
}
for(int i=0;i<10;i++){
printf("%d",arr[i]);
}
return 0;
}
在上面的代码中,我给出vs code的输入:
1(输入键)2(输入键)3(输入键)4(输入键)5(输入键)v 6(输入键)7(输入键)
则输出为123456*****
,其中星星包含一些垃圾值。
我没有得到为什么VS代码等待我进入7然后显示输出。给定的scanf
循环将运行6次,所以它应该在我输入6然后按enter后立即显示输出。我弄错了吗?
你的数组大小是10,即0-9,如果你只是定义数组[10],将会有0-9的垃圾值。现在在第一个循环,您正在输入运行6次(0 - 5)它的意思是在你的数组大小10现在有6个输入和其他去年4垃圾值。在你打印数组的最后一个循环中,注意它从0到9迭代意味着它打印了所有的值,但前6个正确打印,其他4个将是垃圾。
所以你必须从0-6而不是0-10开始打印最后一个循环应该是(int i = 0; i<6;我+ +)