本题要求将给定的n个整数从大到小排序后输出。
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
4 5 1 7 6
结尾无空行
7 6 5 1
结尾无空行
max_index : 最大元素的下标
tem :交换的时候用来存储元素的临时变量
#include<stdio.h> int main() { int n = 0, arr[10] = { 0 }; int i = 0, max_index=0, j = 0; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &arr[i]); for (i = 0; i < n - 1; i++) { max_index = i; for (j = i + 1; j < n; j++) if (arr[j] > arr[max_index]) max_index = j; int tem = 0; tem = arr[max_index]; arr[max_index] = arr[i]; arr[i] = tem; } printf("%d", arr[0]); for (i = 1; i < n; i++) printf(" %d", arr[i]); return 0; }