第二个for循环里每次比较满足条件的都会交换
#include <stdio.h>
#include <string.h>
void swap(int *a,int *b){
int tmp = *a;
*a = *b;
*b = tmp;
}
int main()
{
int arr[] = {1,4,5,65,34,556};
int len = sizeof(arr)/sizeof(int);
printf("len = %d\n",len);
int i,j;
for(i = 0;i < len-1;i++){
int max = i;
for(j = i+1;j<len;j++){
if(arr[max]>arr[j]){
swap(&arr[max],&arr[j]);
}
}
}
for(i=0;i<len;i++){
printf("%d",arr[i]);
printf(" ");
}
printf("\n");
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容