无须多言 读码
#includevoid Print(int arr[], int sz) { int i = 0; for (i = 0; i < sz; i++) { printf("%5d", arr[i]); } } int leomessi(int arr[], int sz) { int pos = 0;//用来表示最大值的位置 int max = arr[0];//假设最大值为第一个元素 int i = 0; for (i = 0; i < sz; i++) { if (arr[i] > max) { max = arr[i]; pos = i;//利用循环找到最大值的下标并且赋给位置pos } } return pos; } void ronaldo(int arr[],int sz) { while (sz > 1)//直到待交换的 只剩余一个元素 { int pos = leomessi(arr, sz);//把最大值的下标拿出来 //调换 int temp = arr[sz - 1]; arr[sz - 1] = arr[pos]; arr[pos] = temp; sz--; } } int main() { int arr[] = { 9,5,2,7,12,4,3,1,11 }; int sz = sizeof(arr) / sizeof(arr[0]); ronaldo(arr, sz); Print(arr, sz); return 0; }



