august 发表于 2007-3-22 22:48:53

按英文先后顺序输出问题

有n个国家名,要求按字母先后顺序排列,并按序输出
#include"stdio.h"
void strupr(char str[]);
main()
{
char str;
char name;
int i,j,k,n=10;
printf("\nplease input country number(<=30) of sorting\n");
scanf("%d",&n);
printf("\n PLEASE INPUT COUNTRY NAME\n");
for(i=0;i<n;i++)
{
gets(name);
strupr(name);
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
for(k=0;;k++)
if(name<name)
break;
else if(name>name)
{
strcpy(str,name);strcpy(name,name);
strcpy(name,str);
break;
}
}
}
for(i=0;i<n;i++)
printf("\n%s",name);
}
void strupr(char str[])
{
int i;
for(i=0;str!='\0';i++)
if(str>='a'&&str<='z') str=str+'A'-'a';
}

输入:
british
america
india
cina

输出:
AMERICA
BRITISH
CHINA
。。。。。

我是不明白这里
if(name<name)
它到底如何判断呢?直接字母a跟b也可以判断它的先后顺序吗?

美兽 发表于 2007-3-22 23:00:52

不知道LZ使用的语言是否可以直接单字符比对,就算不可以利用ASCII码值也可以吧??

Saiholmes 发表于 2007-3-22 23:18:17

比的就是ASCII码值...
和LZ上次问的大小写转换是一个道理...

august 发表于 2007-3-22 23:53:24

呵呵 (X.X)...............
页: [1]
查看完整版本: 按英文先后顺序输出问题