total[]) { if ( total[DEALER] == 21 ) { pr ...
写给大家看的C语言书 第 版 是邮电社图灵公司引进翻译的一本C语言入门书,这是一本垃圾书。搞不清图灵为什么引进了这样一本垃圾书。该书作者基本不懂得C编程技术,书中误导 错谬比比皆是。 该书的附录B给出了一个 点游戏的代码,这是一个很糟糕的C程序,毛病很多,实在不足以为初学者以示范,当反面教材还差不多。考虑到其中的很多毛病初学者也有,所以拿来在此评析一番。 首先,这段程序可读性极差,甚至可以说是乱 ...
2013-07-06 21:25 5 2328 推荐指数:
total[]) { if ( total[DEALER] == 21 ) { pr ...
【重构】(续) 牌的表示: 一副牌有52张,可用一整数数组描述。但是由于在游戏过程中牌数在不断减少,所以用一表示剩余张数的整数和一整数数组共同描述。C99支持一种变量长度数组,但用在这里并没有什么特别的好处,并不合适。 typedef struct { int cards[52 ...
下面来考察一下main()的总体结构。 main()函数中do-while语句循环体部分的含义是这样的 与下面写法相比,两者在逻辑上的结构差别很明显 ...
View Code 继续走查dispCard()函数: dispCard()函数的功能是显示抽到的牌的点数并计算抽牌者目前的总点数。这个函数最主要的毛病是可读性差,原因主要有两点,第一,在switch语句中蹩脚地嵌套了一句 ...
【题目】 将一个5*5的矩阵中最大的元素中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现之,用main函数调用。 ——谭浩强 ,《C程序设计(第四版)学习辅导》,清华大学出版社,2010年7月,p108【评析 ...
【题目】 猜数字(又称 Bulls and Cows )是一种大概于20世纪中期兴起于英国的益智类小游戏。一般由两个人玩,也可以由一个人和电脑玩,在纸上、在网上都可以玩。这种游戏规则简单,但可以考验人的严谨和耐心,而这也正是程序员所需要的优秀品质。 标准规则如下: 通常 ...
前文链接:劣质代码评析——猜数字问题(上)【重构】 这个问题的解决并不复杂,最多只需要三个步骤: 生成无重复数字的四位整数; 重复猜数字最多10次,猜中则宣布胜利,程序结束; 10次没猜中,宣布失败,程序结束。 用C语言描述这个过程应该是 ...
【题目】 15.有一个班4个学生,5门课程:①要求计算第一门课程的平均分;②找出两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90分以上或全部成绩在85分以上的学生。分别编写3个函数实现以上3个要求。 ——谭浩强 ,《C程序设计(第四版)学习辅导 ...