3.(输入)6个数,从大到小进行排序后逆序(输出)。用c语言完成
时间: 2024-10-04 18:00:52 浏览: 35
C语言程序设计-编写函数fun对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果;
5星 · 资源好评率100%
在C语言中,我们可以使用冒泡排序算法结合数组反转的方式来实现这个功能。这里是一个简单的示例程序:
```c
#include <stdio.h>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 遍历所有元素
for (int j = 0; j < n - 1 - i; j++) { // 每轮比较相邻元素并交换
if (arr[j] > arr[j + 1]) {
// 交换元素位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 函数用于将数组逆序
void reverseArray(int arr[], int start, int end) {
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
void printSortedAndReversed(int arr[], int n) {
bubbleSort(arr, n);
printf("Sorted array in descending order: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
reverseArray(arr, 0, n - 1); // 反转数组
printf("\nReversed array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
}
int main() {
int numbers[6]; // 假设这六个数字已经赋值了
// ... 先给数组赋值 ...
int n = sizeof(numbers) / sizeof(numbers[0]);
printSortedAndReversed(numbers, n);
return 0;
}
```
在这个程序中,首先对数组进行降序排序,然后通过`reverseArray`函数反向数组,最后打印出排序后的逆序数组。
阅读全文