1003. 打印螺旋矩阵
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
题目 1003. 打印螺旋矩阵
TimeLimit: 1000ms
MemoryLimit: 64MB
Description
请按照题目要求打印顺时针的螺旋矩阵。
Input
输入首先输入一个整数N,后面有N个测试数据。每个测试数据包括两个整数n,m(0 输出格式可参考输出代码,螺旋是顺时针顺序的,具体可以参考样例输出。 如下为输出格式: #include } }
Output
Sample #1
Input复制
2
1 1
5 6
Output复制
1
1 2 3 4 5 6
18 19 20 21 22 7
17 28 29 30 23 8
16 27 26 25 24 9
15 14 13 12 11 10
#include
int main(){
int N,q=1;
scanf("%d",&N);
while(q<=N){
q++;
int m,n;
scanf("%d%d",&n,&m);
if(n==m&&n==1)printf(" 1n");
else {
int a[99][99];
int i,j;
int sum=n*m;
int c=0;
int num=0;
i=0;j=-1;
while(num
for(i=i+1,j=j+1;j
a[i][j]=num++;
}
for(i=i;i
a[i][j]=num++;
}
for(j=j;j>c+1;j--){
if(num>sum) break;
a[i][j]=num++;
}
for(i=i;i>c+1;i--){
if(num>sum)break;
a[i][j]=num++;
}
c++;
}
for(i=1;i<=n;i++){for(j=1;j<=m;j++){
printf("%2d%c", a[i][j], j == m ? 'n' : ' ');
}}
return 0;
}
新手写题还请多多包涵,求各位大佬给出建议。



