【正确答案】正确答案:本题的一种算法前面已讨论(请参见本章填空题32题)。这里给出另一种解法。分析数的填法,是按“从右上到左下”的”蛇形”,沿平行于副对角线的各条对角线上,将自然数从小到大填写。当从右上到左下时,坐标i增加,坐标j减小,当j减到小于0时结束,然后j从0开始增加,而i从当前值开始减少,到i<0时结束。然后继续如此循环。当过副对角线后,在i>n一1时,j=j+2,开始从左下向右上填数;而当j>n一1时,i=i+2,开始从右上向左下填数,直到n*n个数填完为止。核心语句段如下: while(i
一1) //从右上向左下填数 (A[i][j]=k++;i++;j一一;) if((j<0)&&(icn))j=0; //副对角线及以上部分的新i,j坐标 else{J=j+2;i=n一1;) //副对角线以下的新的i,j坐标 while(i>一1&&J
【答案解析】