A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© moon_H 中级黑马   /  2015-3-2 23:08  /  1350 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

入学考试题里面有一道是这样的,感觉歧义很大啊,到底是按照字符串长度排序,还是按照整体排序?

从键盘输入6个字符串(仅仅包含英文字母和数字),对这6个字符串从小到大排列并输出结果。(C语言)

求满分童鞋解答一下到底啥意思

7 个回复

倒序浏览
求往期童鞋解答
回复 使用道具 举报
求往期童鞋解答
回复 使用道具 举报
应该是ansc字符形式比较大小吧,比如0是0x30, 1是0x31,a是0x40
回复 使用道具 举报
黑色淘金 发表于 2015-3-2 23:54
应该是ansc字符形式比较大小吧,比如0是0x30, 1是0x31,a是0x40

谢谢啦,还是不太明白,比如有三个字符,adsfa12,ewqw34,oklj98,该如何排序呢
回复 使用道具 举报
如果你是要c语言的话,那么可以使用strcmp函数,k = strcmp(s1,s2),S1和s2都是字符串,若S1 > S2 ,K > 0 ;若S1 = S2 ,k = 0 ; 若 S1 < S2 ,K< 0 ,如果你想知道字符串具体细节,就回复一下的话,我看到了会告诉你的
回复 使用道具 举报
按照字符串长度排序(ps:你可以两个都写哦)
回复 使用道具 举报
本帖最后由 仰望的繁华 于 2015-3-3 14:45 编辑

抽到同一个题,没扣分。
我的思路是:
将长度短的后面视为补0对齐,然后参考数字的大小标准 比较ASCII 。高位大的时候,就不必再比低位。
例如:
abcdefg 和 abc 比较
a b c d e f g
a b c 0 0 0 0
比到第四个:0 < d ,则下面小于上面。  
类似于 两个三位数比较大小:百位数大,就不用比较十位和个位。
实际代码中,没有补0一说,而是字符串结尾:\0  必然小于其他字符,所以比到 \0 必然出结果。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马