算法既然不止一种,就有必要对算法进行优化。
【例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=2 1*3=3 2*3=6 1*4=4 2*4=8 3*4=12 1*5=5 2*5=10 3*5=15 4*5=20 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 1*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
);
即可。一个程序写完后,要对程序进行研究,看看有无可以优化的地方,尽量在现有的基础上予以优化。
