#include <stdio.h> #define COMPARE <
int main() { int nums[] = {303, 558, 314, 117, 205, 48, 96, 118, 653}; int count = sizeof(nums) / sizeof(int); int i, j, temp, max_j; // 按从大到小排序 for (i = 0; i < count - 1; i++) // 循环共进行count - 1轮 { // 每轮循环除第一个外,比较余下的数,找出最大的数的下标 max_j = i + 1; for (j = i + 2; j < count; j++) { if (nums[max_j] COMPARE nums[j]) max_j = j; } // 如果该轮循环第一个数比最大的数小,就交换 if (nums[i] COMPARE nums[max_j]) { temp = nums[i]; nums[i] = nums[max_j]; nums[max_j] = temp; } } for (i = 0; i < count; i++) printf("%d ", nums[i]); putchar('\n'); return 0; }
|