题解 | #输入整型数组和排序标识,对元素按升序或降序排序#
输入整型数组和排序标识,对其元素按照升序或降序进行排序
https://www.nowcoder.com/practice/dd0c6b26c9e541f5b935047ff4156309?tpId=37&tqId=21324&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fdifficulty%3D2%26page%3D1%26pageSize%3D50%26search%3D%26tpId%3D37%26type%3D37&difficulty=1&judgeStatus=undefined&tags=&title=
// main只负责处理输入和输出,
// 按升序排序和按降序排序各自单独写一个函数,放在main的外面
#include <stdio.h>
// 按升序排序
void BubbleSortAscend(int* arr, int len) {
for (int i = 1; i <= len - 1; i++) {
for (int j = 0; j <= len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
// 按降序排序
void BubbleSortDecend(int* arr, int len) {
for (int i = 1; i <= len - 1; i++) {
for (int j = 0; j <= len - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main() {
// 读入数组长度
int n;
scanf("%d", &n);
// 读入数组
int arr[n];
for (int i = 0; i < n; i++)
scanf("%d", &arr[i]);
// 读入升序还是降序
int DeOrAs;
scanf("%d", &DeOrAs);
// 进行排序
if (DeOrAs == 1)
BubbleSortDecend(arr, n);
else
BubbleSortAscend(arr, n);
// 排序结束,可以输出
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
拼多多集团-PDD成长空间 1356人发布
查看14道真题和解析