#include<iostream>
#include<iomanip>
using namespace std;
int m[101][101];
int main(){
int a;
cin>>a;
int c=a*a,i=1,k=(a+1)/2;
for(int j=1;j<=c;j++){
m[i][k]=j;
if(j%a==0){
if(i==a) i=1;
else i++;
}else{
if(i==1) i=a;
else i--;
if(k==a) k=1;
else k++;
}
}
for(int i=1;i<=a;i++){
for(int j=1;j<=a;j++)
cout<<setw(5)<<m[i][j];
cout<<endl;
}
return 0;
}
判断题
(1)从程序可以看出,i 为被填数,j 和 k 为填数位 置。( )
(2)填数结束后,数组 m 中的元素互不相同。( )
选择题
(3)当 j%a==0 且 i!=a 时,下一步填入的是( )
A. m[1][k] B. m[i+1][k] C. m[k+1][i] D. m[k+1][i+1]
(4)当 j%a!=0,i!=1 且 k==a 时,下一步填入的是( )
A. m[a][1] B. m[i-1][1] C. m[a][k+1] D. m[i-1][k+1]