题目描述
输出n*m的回型矩阵
输入
多组测试数据 每组输入2个整数 n和m(不大于10,且不同时为10)
输出
输出n*m的回型矩阵,要求左上角元素是1,(每个元素占2个位置,靠右)
样例输入
4 3
样例输出
1 2 3 10 11 4 9 12 5 8 7 6
#include<stdio.h>
int main(){
int n,m;
int i,j;
int a[10][10];
int k=0,t=0;
int x=0,y=0;
while(scanf("%d%d",&n,&m)!=EOF){
while(1){
i=x;
j=y;
for(j;j<m-x;j++){
k++;
a[i][j]=k;
if(k>=(n*m)){
break;
}
}
if(k>=(n*m)){
break;
}
i++;
j--;
t++;
for(i;i<n-t+1;i++){
k++;
a[i][j]=k;
if(k>=(n*m)){
break;
}
}
if(k>=(n*m)){
break;
}
i--;
j--;
for(j;j>-1+x;j--){
k++;
a[i][j]=k;
if(k>=n*m){
break;
}
}
if(k>=(n*m)){
break;
}
j++;
i--;
for(i;i>-1+t;i--){
k++;
a[i][j]=k;
if(k>=n*m){
break;
}
}
if(k>=(n*m)){
break;
}
x++;
y++;
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(a[i][j]<10){
printf(" %d ",a[i][j]);
}
else{
printf("%d ",a[i][j]);
}
}
printf("\n");
}
k=0;
t=0;
x=0;
y=0;
}
return 0;
}