算法既然不止一种,就有必要对算法进行优化。
【例25.2】优化打印9*9乘法表的例子。
#include <stdio.h>int main(){ int i=0, j=0; for(i=1; i<10; ++i) { for(j=1; j<10; ++j) { if(j<i) printf("%d*%d=%d/t", j, i ,i*j); } printf("/n"); } printf("/n"); return 0;}
输出乘法表如下。
1*2=21*3=3 2*3=61*4=4 2*4=8 3*4=121*5=5 2*5=10 3*5=15 4*5=201*6=6 2*6=12 3*6=18 4*6=24 5*6=301*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=421*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=561*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72
第2个for循环语句可以优化,它既要判别j<=10,又要判别j<=i,增加了循环次数。可以取消if语句,修改for循环语句的条件为“j<=i”即第2个循环语句简化为:
for(j=1; j<=i; ++j) printf("%d*%d=%d/t", j, i ,i*j);
即可。一个程序写完后,要对程序进行研究,看看有无可以优化的地方,尽量在现有的基础上予以优化。