// 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; }