��
课文注释:例如,下面是由三句C语句组成的程序段:
|
|
for ( i = 1; i <=
n; i++ )
�for ( j = 1; j <= n; j++ )
��v[i][j] = ( i / j )*( j / i );
|
|
��事实上,这是一个有双重循环的程序段,得到的结果是一个n×n的二维数组,只是说明语句被略去了。在C语言中,除法运算(/)在除数和被除数都是整型量时,其结果只取整数部分。因此,当i
< j时,i / j = 0;当j < i时,j / i = 0。其结果是:当i 1 j时,v[I][j] = ( i
/ j )*( j / i ) = 0;当i = j时,v[i][j] = ( i / j )*( j / i ) = 1。这样得到的数组V是一个单位矩阵。这个程序构思巧妙,但不易理解,读者可能要花很大的力气才能弄清程序编制者的真正意图,这无疑给软件的维护带来很大困难。如果改写成以下的形式,就能让读者直接了解程序编写者的意图了。
|
|
for ( i = 1; i <=
n; i++ )
�for ( j = 1; j <= n; j++ )
��if ( i == j ) v[i][j] = 1;
��else v[i][j] = 0;
|
|