幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2563|回复: 3

[通用编程] 按英文先后顺序输出问题

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-3-22 22:48:53 | 显示全部楼层 |阅读模式
有n个国家名,要求按字母先后顺序排列,并按序输出
#include"stdio.h"
void strupr(char str[]);
main()
{
char str[30];
char name[30][30];
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[k]<name[j][k])
break;
else if(name[k]>name[j][k])
{
strcpy(str,name[j]);strcpy(name[j],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[k]<name[j][k])
它到底如何判断呢?直接字母a跟b也可以判断它的先后顺序吗?
[s:6]  [s:6]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

79

主题

617

帖子

6150

积分

⑦老手

暗夜下可怜人

积分
6150
发表于 2007-3-22 23:00:52 | 显示全部楼层
不知道LZ使用的语言是否可以直接单字符比对,就算不可以利用ASCII码值也可以吧??
希望破灭是因为发现真实,宁可背负罪孽也要维护爱我之人,永远的娜乌西卡!!!!!!
回复 支持 反对

使用道具 举报

88

主题

5419

帖子

214748万

积分

版主

S素世上最伟大最华丽

Rank: 7Rank: 7Rank: 7

积分
2147483647
QQ
发表于 2007-3-22 23:18:17 | 显示全部楼层
比的就是ASCII码值...
和LZ上次问的大小写转换是一个道理...
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-3-22 23:53:24 | 显示全部楼层
[s:6]  [s:6]  [s:6]  [s:6] 呵呵 (X.X)...............
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-5 15:53 , Processed in 0.025935 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表