在主函数中输入 10 个等长的字符串。自定义一个函数对这 10 个字符串进行升序排序, 在主函数中调用此函数并输出排序好的字符串。 【设计要求】 (1)用二维数组作为自定义函数函数的数据类型; (2)使用冒泡排序对字符进行升序排序; (3)在主函数中输入 10 个等长的字符串,存储在一个二维数组中,以这个二维数组的 数组名作为实参进行地址传递调用自定义函数; (4)在主函数中输出排序后的结果。
时间: 2024-02-13 13:00:08 浏览: 77
C语言程序设计-将主函数中输入的字符串反序存放;例如:输入字符串“abcdefg”,则应输出“gfedcba”;.c
5星 · 资源好评率100%
好的,我来为你解答这个问题。
首先,我们需要定义一个函数来对字符串进行排序,使用冒泡排序算法。代码如下:
```c
void stringSort(char arr[][MAX_LEN], int n) {
int i, j, flag;
char temp[MAX_LEN];
for (i = 0; i < n - 1; i++) {
flag = 0;
for (j = 0; j < n - 1 - i; j++) {
if (strcmp(arr[j], arr[j + 1]) > 0) {
strcpy(temp, arr[j]);
strcpy(arr[j], arr[j + 1]);
strcpy(arr[j + 1], temp);
flag = 1;
}
}
if (flag == 0) {
break;
}
}
}
```
这个函数接受一个二维字符数组和数组长度作为参数,使用冒泡排序算法对字符串进行升序排序。
接下来,在主函数中,我们需要定义一个二维字符数组,并输入 10 个等长的字符串,然后调用自定义的函数进行排序,最后输出结果。代码如下:
```c
#define MAX_LEN 100
int main() {
char arr[10][MAX_LEN];
int i;
// 输入 10 个字符串
printf("请输入 10 个等长的字符串:\n");
for (i = 0; i < 10; i++) {
scanf("%s", arr[i]);
}
// 对字符串进行排序
stringSort(arr, 10);
// 输出排序后的结果
printf("排序后的字符串为:\n");
for (i = 0; i < 10; i++) {
printf("%s\n", arr[i]);
}
return 0;
}
```
在这个主函数中,我们首先定义了一个二维字符数组 `arr`,然后使用一个循环来输入 10 个等长的字符串。接着,我们调用自定义的函数 `stringSort` 对这 10 个字符串进行排序。最后,我们使用另一个循环来输出排序后的结果。
注意,我们在调用函数 `stringSort` 时,使用了数组名 `arr` 作为实参进行地址传递,这样函数中对数组的修改会直接反映到主函数中的数组中。
这样,我们就完成了这道题目的解答。
阅读全文