c语言输入5个国名,编程找出并输出按字典顺序排在最前面的国名.

输入5个国名,编程找出并输出按字典顺序排在最前面的国名.
输入输出用例
Input five countries' names:
China
Japan
America
England
Danmark
The minimum is:America

第1个回答  2013-05-18
#include<stdio.h>
main()
{
char b[5][20];
int i,n,k=0; //k用来保存字符串最小国家的下标,初始设第一个为最小
clrscr();
printf("Input five countries' names:\n");
for(i=0;i<5;i++) //这个for用来接收5个国名
{
gets(b[i]);
printf("\n");
}
for(i=0;i<4;i++) //这个for用来比较哪个国家的字符串最小,并用k保存
{
n=strcmp(b[i],b[i+1]);
if(n>0)
k=i+1;
}
printf("The minimum is:");
puts(b[k]);
getch();
}
第2个回答  推荐于2018-02-27
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
char* str[5];
int i;
printf("Input five countries' names:\n");
for(i=0;i<5;i++)
{
str[i] = (char*)malloc(50);
scanf("%s",str[i]);
}
for(i=0;i<5;i++)
{
if(strcmp(str[0],str[i])>0)
{
str[0]=str[i];
}
}
printf("The minimum is:%s\n",str[0]);
for(i=0;i<5;i++)
{
free(str[i]);
}
return 0;
}本回答被提问者和网友采纳
第3个回答  2018-05-21
第一次写,我觉得还可以吧 ,
#include<stdio.h>
#include<string.h>
void main()
{
char a[5][99],b[99];
int i,j,k;
for(i=1;i<6;i++)
gets(a[i]);
for(i=1;i<6;i++)
{
for(j=1+i;j<6;j++)
{
if(strcmp(a[j],a[i])>0)
{
strcpy(b,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],b);
}
}
}
printf("最前的一个国家为:");
puts(b);
printf("\n");
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网