作业帮 > 综合 > 作业

将四个国家英文名按字母表顺序排列输出问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/25 05:00:21
将四个国家英文名按字母表顺序排列输出问题

#include"stdio.h"
#include"string.h"
void main()
{
char *cs,*str[]={"English","China","Japan","America"};
int i,j,k;
for(i=0;i<4;i++)
{
        k=0;
        for(j=0;j<=3-i;j++)
        {
         if(strcmp(str[j],str[k])>0)
         k=j;
        }
        if(k!=3-i)
        {
         cs=str[k];
         str[k]=str[3-i];
         str[3-i]=cs;
        }
        puts(str[i]);
 
}
}
/*不知道错哪了,输出结果不对*/
你的puts的问题.你这里的k是找到的最大的,但是,你下面的puts确实输出端 第i个,你应该要输出的是k,不过,你又跟3-i换了,所以.这里应该是puts(str[3-i])或者,在if前面puts(str[k])
至于你是要从大到小还是从小到大的话,就看strcmp那里了.改动代码如下(从大到小)
#include"stdio.h"
#include"string.h"
void main()
{
char *cs,*str[]={"English","China","Japan","America"};
int i,j,k;
for(i=0;i