免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: pmerofc
打印 上一主题 下一主题

垃圾代码分析——C语言二维数组范例 [复制链接]

论坛徽章:
0
141 [报告]
发表于 2012-04-10 12:24 |只看该作者
陈良乔 发表于 2012-04-10 12:14
就这个问题本身而言,我只需要知道a和b的大小关系即可,是否相等没有关系(即使相等,也划归到=当中)
...


这样理解就错了。

比如你输入两组整数
  A组:1 2 3 4 0
  B组:1 2 3 4 0
完全一样,显然它们的平均数也应该一样,cmp函数必须要返回0

然后用你这个办法,qsort 拿 A跟B比,发现 A < B,
拿 B跟A比,发现 B < A,如果你是qsort一定会疯掉。

那么,qsort不死给看你,就是因为恰好这个qsort做的好,是程序员的造化好,不是程序写的好。


  

论坛徽章:
0
142 [报告]
发表于 2012-04-10 12:38 |只看该作者
AD8018 发表于 2012-04-10 12:24
这样理解就错了。

比如你输入两组整数

快排本身是不稳定排序,这样子其实也无伤大雅

论坛徽章:
0
143 [报告]
发表于 2012-04-10 12:51 |只看该作者
本帖最后由 三月廿七 于 2012-04-10 12:55 编辑
0xC1988 发表于 2012-04-10 12:01
浮点数一般不认为能精确的和0.0f相等,会取一个精度值做对比

如 #define EXP 0e-8
if (a>0&&a>EXP) r ...


如 #define EXP 0e-8
if (a>0&&a>EXP) return 1;
else if(a<0 &&(-a)>EXP) return -1;
else return 0;

我觉得这样 比较蛋疼,
跟0比较为什么还要精度呢,?

论坛徽章:
0
144 [报告]
发表于 2012-04-10 12:57 |只看该作者
三月廿七 发表于 2012-04-10 12:51
如 #define EXP 0e-8
if (a>0&&a>EXP) return 1;
else if(aEXP) return -1;


无限接近0时当0值处理{:2_176:} 这个程序里面这样用有点夸张,不过如果不这样用,我觉得程序作者的目的达不到

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
145 [报告]
发表于 2012-04-10 13:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
146 [报告]
发表于 2012-04-10 13:11 |只看该作者
lol真热闹

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
147 [报告]
发表于 2012-04-10 13:49 |只看该作者
回复 120# 陈良乔

safedead也就算了……
你要写书的…… 难道也只追求编译通过就ok吗?

论坛徽章:
0
148 [报告]
发表于 2012-04-10 13:57 |只看该作者
AD8018 发表于 2012-04-10 12:24
这样理解就错了。

比如你输入两组整数


还是你的1234的例子
应该是avera - averb>0不成立
所以返回-1

A B相同,谁排在前面都一样

cmp函数必须要返回0?

论坛徽章:
0
149 [报告]
发表于 2012-04-10 14:04 |只看该作者
OwnWaterloo 发表于 2012-04-10 13:49
回复 120# 陈良乔

safedead也就算了……


当然不是阿,所以才在这里根大家讨论吗,感谢大家的指点

实际上,这个例子来自于我正在写的另外一本关于C语言的书
因为自己以前使用C++比较多,所以在C语言方面缺乏经验,我也是诚惶诚恐啊

所以我问问这里有没有热心人有时间,愿意来帮我审阅一下书稿?帮我找找其中的错误。
这样免得我去误人子弟啊,有没有人愿意帮忙呢?

如果你感兴趣,可以email我:chenlq@live.com

论坛徽章:
0
150 [报告]
发表于 2012-04-10 14:19 |只看该作者
回复 149# 陈良乔

    实际上,这个例子来自于我正在写的另外一本关于C语言的书
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP