倚风听雨. 2021-09-17 00:27 采纳率: 60%
浏览 28
已结题

编译器没有报错,但无法输出国家名称的顺序,不知道是哪里出了问题

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int n;//国家数量
int i=0;
char *a;
scanf("%d",&n);
char *pcountry=NULL;
for(i=0;i<n;i++)
{
pcountry=malloc(10);
scanf("%s",(pcountry+i));//输入每个国家的英文名称
}
for(i=0;i<n;i++)
{
if(strcmp(pcountry,pcountry+1)<0)
continue;
else
{
*a=*pcountry;
pcountry=(pcountry+1);
*pcountry=a;
}
}
for(i=0;i<n;i++)
{
printf("%s",
(pcountry+i));//把国家名称按字典顺序输出
}
return 0;
}

  • 写回答

2条回答 默认 最新

  • 急速光粒 2021-09-17 06:51
    关注

    程序逻辑因为你的国家变量不是数组这个是混乱了。
    pcountry=malloc(10);
    scanf("%s",(pcountry+i));//输入每个国家的英文名称
    把pcountry当数组用了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 9月17日