思路
- 把首项当成最大最小元素
- 从剩余的元素中继续找到最大最小元素
- 需要确定每次找到的最大最小元素的下标
代码实现
intmain(){ inta[10]={4,31,5,67,4,4,3,2,6,0},i,j,x,z; for(i=0;i<9;i++){ x=i; //,先将a[i]当成最小的数,遍历找到最小的数的下标for(j=i+1;j<10;j++){ if(a[x]>a[j]) //a[x]当成最小的数,于后面的元素一 一比较,x=j; //如果a[x]>a[j]那么x等于j,变换最小值的下标 } if(x!=i){ //如果x!=i,说明x的值已经改变,找到了比a[i]还小的数的下标z=a[i]; //进行a[i]和a[x]的交换a[i]=a[x]; a[x]=z; } } for(j=0;j<10;j++){ printf("%d ",a[j]); } }