处理思想:
- 对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交换位置;
- 除第1 个数外,其余n-1个数中选最小的数,与第2个数交换位置;
- 依次类推,选择了n-1次后,这个数列已按升序排列。
int j = 0, imin = 0, s = 0, a[10];
printf(“\n input 10 numbers:\n”);
for(int i=0;i<10;i++)
scanf(“%d”,&a[i]); // 循环输入10个数
for(int i=0;i<9;i++) {
imin=i; // 假设第一个数最小,把下标赋值给imin
for(j=i+1;j<10;j++){
if(a[imin]>a[j]){
imin=j; // 保证imin中记录的下标是最小数的下标
}
}
// 比较下标是否一致,否则调换位置,保证按序排列
if(i!=imin) {
s=a[i];
a[i]=a[imin];
a[imin]=s;
}
}
printf(“%d\n”,a[i]); // 循环输出数组
}