C语言从键盘输入n个整数,按照从大到小排序输出
时间: 2024-12-16 10:32:27 浏览: 9
[例]选择法排序从大到小排序程序。-全国二级c语音
在C语言中,你可以使用数组和标准库函数`qsort()`来实现这个功能。首先,你需要创建一个动态数组来存储输入的n个整数,然后读取用户输入并将其添加到数组中,接着调用`qsort()`对数组进行降序排列,最后遍历并打印排序后的数组。
下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
// 用于比较两个整数的辅助函数,这里是降序排序
int compare(const void *a, const void *b) {
return (*(int*)b - *(int*)a); // 负值表示 a 应该排在 b 前面,即降序
}
void input_and_sort(int arr[], int n) {
int i;
printf("请输入 %d 个整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
qsort(arr, n, sizeof(int), compare); // 对数组进行降序排序
printf("按从大到小排序后的结果是:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int n;
printf("请输入元素个数:");
scanf("%d", &n);
int* arr = malloc(n * sizeof(int)); // 动态分配内存
if (!arr) {
perror("Memory allocation failed");
return 1;
}
input_and_sort(arr, n);
free(arr); // 别忘了释放内存
return 0;
}
```
在这个例子中,`compare()`函数告诉`qsort()`如何比较数组元素,而`input_and_sort()`函数负责输入、排序以及输出。注意,如果内存分配失败,我们需要处理错误并释放已分配的内存。
阅读全文