#include<stdio.h> main() { int a[10],n,i,j,temp,

#include<stdio.h>main(){inta[10],n,i,j,temp,min;printf("inputn=");scanf("%d",&n);printf("inputarraya[0]a[1]...a[%d]:\n",n-1);for(i=0;i<n;i++)scanf("%d",&a[i]);printf("bef... #include<stdio.h> main() { int a[10],n,i,j,temp,min; printf("input n="); scanf("%d",&n); printf("input array a[0] a[1]...a[%d]: \n",n-1); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("befor sort:array\n"); for(i=0;i<n;i++) printf("%4d",a[i]); printf("\n"); for(i=0;i<n;i++) { min=i; for(j=i+1;j<n;j++) if(a[j]<a[min]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("after sort:array\n"); for(i=0;i<n;i++) printf("%4d",a[i]); printf("\n"); } 程序看不懂,给详细解释一下 展开

第1个回答  2020-02-20
就是个排序,n表示你要输入数字的个数,然后将你输入的数字存入数组a[10]中,这里输入数字大小先后顺序不用管,下面有一个排序的程序段,
for(i=0;i<n;i++)
{
min=i;
for(j=i+1;j<n;j++)
if(a[j]<a[min])
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}这个就是排序,这个就是将小的数放到前头,就是按数组a[0]a[1]a[2]顺序排放存入。最后排序完,数组a[10]中的数都是由小到大放置的了。
最后的循环就是将他们由小到大输出。printf("after
sort:array\n");
for(i=0;i<n;i++)
printf("%4d",a[i]);
将a[0]输出一直到a[n-1]的数全部输出为止。
相似回答