#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;
}
编译器没有报错,但无法输出国家名称的顺序,不知道是哪里出了问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
急速光粒 2021-09-17 06:51关注程序逻辑因为你的国家变量不是数组这个是混乱了。
pcountry=malloc(10);
scanf("%s",(pcountry+i));//输入每个国家的英文名称
把pcountry当数组用了。本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用