请都进来看下~

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:04:30
#include <stdio.h>
main()
{ int a[11],i,j,k,x;
printf("Input 10 numbers:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");

for(i=1;i<10;i++)
{ k=i;
for(j=i+1;j<=10;j++)
if(a[j]<a[k]) k=j;
if(i!=k)
{ x=a[i];
a[i]=a[k];
a[k]=x;
}
}

printf("The sorted numbers:\n");
for(i=1;i<11;i++)
printf("%d ",a[i]);
}#include <stdio.h>
main()
{ int a[11],i,j,k,x;
printf("Input 10 numbers:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");

for(i=1;i<10;i++)
{ k=i;
for(j=i+1;j<=10;j++)
if(a[j]<a[k]) k=j;
if(i!=k)
{ x=a[i];

你太搞了吧,他定义的11个元素啊……虽然0号确实没用,估计是犯傻了。
而你定义的是9个元素,虽然被你撞对了(c,c++没有越界警报,所以被你蒙混过关了)(如果你这个程序复杂点,那么你最后输入那个数的位置就会和别的变量公用了,结果你会发现一些很莫名其妙的错误~),但是注意定义数组的时候[]里面的数字就是数组大小,而不是下标最大值。a[9]的最后一个元素是a[8]而不是a[9],希望以后注意啊

LZ定义的不是10个元素,是9个。。。。

上面的那个程序只是为了下标书写习惯,我们平时用的时候,都习惯把第一个元

记做a1....