#include <stdio.h> #define N 10 //N表示数组元素的个数是10 int main() { int array[N]={100,1,40,29,45,22,98,2,83,75}; int i,j; int tmp; for(i=0;i<N-1;i++) { int idx=i;//假设当前元素是最小的 for(j=i+1;j<N;j++) { if(array[idx]>array[j]) { idx=j;//有比当前元素小的,更新最小下标,知道循环结束 } } if(i!=idx)//idx==i说明假设成立,当前最小进入下一轮 { tmp=array[i]; array[i]=array[idx]; array[idx]=tmp; } } for(i=0;i<N;i++) { printf("%d ",array[i]); } return 0; }
打印结果: