当声明数组int arr[9]
定义数组,输入数据截止到下标 arr[6],系统自动给arr[7] arr[8] 赋值为 **-…**任意值
int x; //输入数据
int i = 0 ; //记录位数
int a[5]; //存储逆序
int temp;
printf("输入数据x:");
scanf("%d",&x);
while( x >= 100000 && x > 0)
{
printf("数据超过5位,请重新输入:");
scanf("%d",&x);
}
//输出
printf("\n%d是%d 位数\n",x,i);
printf("原来数据顺序:");
for( int k = i-1 ; k >= 0 ; k-- )
{
printf("%d",a[k]);
}
printf("\n逆序后:");
for(int j = 0 ; j < i ; j++ )
{
printf("%d" , a[j]);
}
结果:
若将代码修改: for( int k = i ; k >= 0 ; k-- )
结果:
原因:此时只将0 8 3 赋值给arr[0] arr[1] arr[2],剩余arr[3],arr[4] 由系统自动赋值
**总结:**定义静态数组时未赋值的下标所在值由系统自动赋值任意值;
若想自己输入的数据多少就是数组大小请用动态声明数组