编写一个C语言程序,允许用户输入自定义的整数数组,并将数组中的值从大到小排列后输出。
时间: 2024-11-15 19:29:23 浏览: 13
在C语言中,你可以使用标准库函数`qsort()`来实现这个功能。首先,你需要创建一个结构体来存储数组元素及其值,然后编写一个比较函数`compare()`,告诉`qsort()`如何对数组进行排序。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 结构体表示数组元素
typedef struct {
int value;
} SortElement;
// 比较函数,用于qsort()
int compare(const void* a, const void* b) {
SortElement* elemA = (SortElement*)a;
SortElement* elemB = (SortElement*)b;
return elemB->value - elemA->value; // 降序排列
}
int main() {
int n;
printf("请输入数组长度:");
scanf("%d", &n);
// 创建动态数组
SortElement* arr = malloc(n * sizeof(SortElement));
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i].value);
}
// 使用qsort()对数组进行排序
qsort(arr, n, sizeof(SortElement), compare);
printf("按降序排列后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i].value);
}
printf("\n");
// 释放内存
free(arr);
return 0;
}
```
运行此程序后,用户可以输入任意长度的整数数组,程序会将其按照降序排列并输出。
阅读全文