什么样的程序才算是好的程序?不同的人有不同的回答。
这确实在一定程度上说明你可能有些厉害,但多数情况下算不上好程序。举个例子,交换两个变量a,b的值:
一般我们都是借助一个中间变量t: t=a; a=b; b=t;
也有人说,我不用中间变量也可以:a=a+b; b=a-b;a=a-b;
除了特定情况其实没必要这样,对于初学者还不好理解,容易出错。
曾经看到一个同学使用递归函数实现字符串的逆序处理,非常简短的代码。不能说程序写得不好,但递归深度太大消耗内存很严重。一般也不太容易想到。
程序效率高运行快,固然也是好的。但是对于大家来说,写的程序都不长,快一点,慢一点没有多大区别。10ms、100ms、1s,运行起来都是立马出结果,所以对我们来说也不太需要。只有在大数据处理的时候比较讲究速度效率,但主要考算法优化实现。就像求最大公约数的题目,可以用辗转相除法、也可以相减、还可以一个个试,但是对于速度快的辗转相除法,有些同学不太理解,老是记错顺序,那还不如用笨办法一个个试呢。
那对于一个C语言学习的程序,我们看重什么呢?
第一,当然是运行结果正确,成功解决了问题,这也是基本的。
第二,程序容易看懂。变量命名规范,注释清楚都是很必要的
第三,思路清晰,程序结构清楚,看起来养眼。有的同学程序缩进对齐、换行很不规范,程序完全让人没有继续看下去的耐心,这就很讨厌了。