对输入的国家名字按字母顺序排序(C语言)
发布网友
发布时间:2022-05-03 12:02
我来回答
共4个回答
热心网友
时间:2022-06-19 19:16
比较字母吧,先比较第一个,相同的话再比较的二个,一直类似,不同的话按照字母的ASCII码的大小进行排列。
热心网友
时间:2022-06-19 19:16
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int n,i,j;
char (*p)[10],a[10];
printf("请输入你要输入的国家个数:");
scanf("%d",&n);
p=(char (*)[10])calloc(n,sizeof(char *[10]));
printf("请输入国家的名字\n");
for (i=0;i<n;i++)
scanf("%s",*(p+i));
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if (strcmp(*(p+i),*(p+j))>0)
{
strcpy(a,*(p+i));
strcpy(*(p+i),*(p+j));
strcpy(*(p+j),a);
}
printf("排序后为\n");
for(i=0;i<n;i++)
printf("%s\n",*(p+i));
return 0;
}
热心网友
时间:2022-06-19 19:17
好歹你先写点东西啊
热心网友
时间:2022-06-19 19:17
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int n,i,j;
char (*p)[10],a[10];
printf("请输入你要输入的国家个数:");
scanf("%d",&n);
p=(char (*)[10])calloc(n,sizeof(char *[10]));
printf("请输入国家的名字\n");
for (i=0;i<n;i++)
scanf("%s",*(p+i));
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if (strcmp(*(p+i),*(p+j))>0)
{
strcpy(a,*(p+i));
strcpy(*(p+i),*(p+j));
strcpy(*(p+j),a);
}
printf("排序后为\n");
for(i=0;i<n;i++)
printf("%s\n",*(p+i));
return 0;
}
请输入你要输入的国家个数:3
请输入国家的名字
china
amreican
canada
排序后为
amreican
canada
china
Press any key to continue