本题要求将给定的 n 个整数从大到小排序后输出。
输入格式:
输入第一行给出一个不超过 10 的正整数 n。第二行给出 n 个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
4
5 1 7 6
输出样例:
7 6 5 1
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/12/exam/problems/324
提交:
题解:
#include<stdio.h>
int main(void) {
int n;
scanf("%d", &n);
int array[10];
for (int i = 0; i < n; i++) {
scanf("%d", &array[i]);
}
// n 个数据,选择排序 n-1 次即可得出排序结果
for (int i = 0; i < n - 1; i++) {
// 从剩下的 n-i 个元素中查找,如果存在比 array[i] 大的数,则交换它们的值
for (int j = i + 1; j < n; j++) {
if (array[j] > array[i]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
for (int i = 0; i < n; i++) {
printf("%d", array[i]);
// 相邻数字间有一个空格,行末不得有多余空格
if (i != n - 1) {
printf(" ");
}
}
return 0;
}