在您提供的代码中,有几个问题需要解决:
1. 函数声明和函数定义不一致:
在主函数 main() 中调用的 name() 函数的声明和定义不一致。在函数声明和定义时,参数 array 的类型应为 [b]char 。将函数声明修改如下:
char *name(char *array[], int n);
2. 不正确的数组定义和传递:
在主函数 main() 中,定义数组 a_name 的方式不正确。应该将 char *a_name[5][20] 修改为 char a_name[5][20],以声明一个包含 5 个字符串的二维字符数组。
同时,在调用 name() 函数时,应该传递数组名 a_name,而不是 *a_name[5]。将代码修改如下:
3. 缺少头文件:
您的代码中缺少了 <stdio.h> 和 <string.h> 头文件,它们分别用于输入输出和字符串操作。请确保将它们添加到代码中。
综上所述,以下是修改后的代码:#include <stdio.h>#include <string.h>void sort_names(char [/b]names, int n) { char *temp; for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { if (strcmp(names[i], names[j]) > 0) { temp = names[i]; names[i] = names[j]; names[j] = temp; } } }}int main() { char names[5][20]; for (int i = 0; i < 5; i++) { scanf("%s", names[i]); } sort_names(names, 5); for (int i = 0; i < 5; i++) { printf("%s\n", names[i]); } return 0;}
这样,您应该能够正确运行并按字母顺序排序输出输入的国家英文名。请注意,修改后的代码使用了 sort_names 函数来对字符串数组进行排序,并且传递的参数类型和数组定义都进行了修正。
此内容为ChatGPT(AI)回答,若有错误多多包涵,如果对你有帮助,请设置一个最佳答案! |