| 
 | 
 
 
发表于 2023-9-19 21:01:55
|
显示全部楼层
 
 
 
在您提供的代码中,有几个问题需要解决: 
 
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)回答,若有错误多多包涵,如果对你有帮助,请设置一个最佳答案! |   
 
 
 
 |