我按照你的思路改了一下: 基本思路(不知是不是这样的思路): 以min=a[0]为初值,利用for循环对10个数进行比较,得出最小值用t记下最小值的位置,然后把这个最小值a[t]与数组最后一个值交换,即把最小值放于最后,然后去掉最后一位,对剩余的9个数再进行比较,。。。,最后输出比较完后的数组。详细请看以下代码。
#include<stdio.h> main() { int i,j,t,min,a[10],tmp; printf ("\n input 10 number:"); for(i=0;i<10;i++) scanf("%d",&a); { for (j=9;j>=0;j--) /*外循环:j表示比较次数也表示最后一个数字的下标,*/ { /* 每循环 一次,去掉一个最小值*/ t=0; min=a[0]; /*为最小值赋初值*/ for (i=0;i<=j;i++) /*内循环:对数组中数字与min进行比较,得到最小值*/ if(a<=min) { min=a; t=i; /*用t记下最小值位置*/ } tmp=a[t]; a[t]=a[j]; /*最小值与最后一位交换*/ a[j]=tmp; } } for(i=0;i<10;i++) /*输出比较完后的数组*/ printf ("%d ",a); }
|