求助一道考研题

weixin_36921802 2016-12-04 01:52:33
关于qsort的,这种结构没见过。还有字符型数字怎么比较排序。
...全文
214 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2016-12-06
  • 打赏
  • 举报
回复
我的运行结果是: -6784 -24 1 0 13 24 45 456 6784 3 54 -19 11 11 3 53 6784 456 54 53 45 24 13 11 11 3 3 1 0 -19 -24 -6784 0 1 3 3 11 11 13 24 45 53 54 -19 -24 456 6784 -6784 我的理解是: 第一行输出就是读取的data.txt文件的输出,每一项都是一个字符串a[i](虽然字符串都是数字)。 第一次快排,比较函数是: return atoi((char(*)[80])b)-atoi((char(*)[80])a); 就是把每一个字符串都转换为整数,而且b在前面,a在后面,所以是降序,所以输出结果就是第二行。 第二次快排,比较函数先比较字符串长度,长度相等的情况下,按strcmp比较,升序,所以先是长度为1的字符串,长度为1又按照ASCII值升序,然后长度为2。要注意长度为3的有:-19 -24 456,'-'负号字符的ASCII值小于数字'0'——'9'的ASCII值,所以字符串-19和-24排在字符串456前面,这个真的要对ASCII表比较注意的才不会丢分。
赵4老师 2016-12-06
  • 打赏
  • 举报
回复
考研题都缩水成这副模样了。
paschen 2016-12-04
  • 打赏
  • 举报
回复
paschen 2016-12-04
  • 打赏
  • 举报
回复
qsort最后一个参数是一个函数指针 指向这种类型的函数: int cmp(const void *a, const void *b); 相等返回0,参数1大于参数2返回正数,否则返回负数

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧