c语言程序设计题输入n个字符串再按降序输出 函数调用
时间: 2023-05-30 13:04:38 浏览: 174
以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100 // 假设每个字符串最长为100
// 比较函数,用于qsort排序
int cmp(const void *a, const void *b) {
return strcmp(*(const char **)b, *(const char **)a);
}
int main() {
int n;
printf("请输入字符串个数:");
scanf("%d", &n);
char **str_arr = (char **)malloc(n * sizeof(char *)); // 动态分配字符串指针数组
for (int i = 0; i < n; i++) {
str_arr[i] = (char *)malloc(MAX_LEN * sizeof(char)); // 动态分配每个字符串的空间
printf("请输入第%d个字符串:", i + 1);
scanf("%s", str_arr[i]);
}
// 排序
qsort(str_arr, n, sizeof(char *), cmp);
// 输出
printf("按降序输出:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", str_arr[i]);
}
// 释放内存
for (int i = 0; i < n; i++) {
free(str_arr[i]);
}
free(str_arr);
return 0;
}
```
该程序首先输入字符串个数n,然后动态分配字符串指针数组和每个字符串的空间,接着循环输入每个字符串,并使用qsort函数按字符串降序排序,最后循环输出每个字符串并释放内存。
注意,这里使用了动态内存分配,需要在程序结束时释放内存以避免内存泄漏。
阅读全文