任意输入n个数,冒泡排序。我写的代码是这样的:
int main()
{
int i,j,t,n;
int a[n];
n=5;
printf("Please Enter %d numbers: \n",n);
for(i=0;i<n;i++) {
scanf("%d",&a[i]);
}
printf("The original order is: \n");
for(i=0;i<n;i++) {
printf("%5d",a[i]);
}
printf("\n");
for(i=0;i<n-1;i++) {
for(j=0;j<n-1-i;j++) {
if(a[j]>a[j+1]) {
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("The sorted order is: \n");
for(i=0;i<n;i++) {
printf("%5d",a[i]);
}
printf("\n");
return 0;
}
编译时没有问题,执行时就会说“程序已停止工作”之类的,我后来又把数组声明的"int a[n]"改成"int a[n+1]",就正常了,为什么啊?我里面明明只放了n个数,为什么要声明一个n+1个元素的数组?