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

问题描述:

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

#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]);
 
}
}
/*不知道错哪了,输出结果不对*/
1个回答 分类:综合 2014-10-26

问题解答:

我来补答
你的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
 
 
展开全文阅读
剩余:2000
下一页:奇偶性的应用。