题目是这样的:
2093: 螺旋矩阵2
时间限制: 1 Sec 内存限制: 128 MB
题目描述
输入一个整数n(1<=n<=30),输入一个n*n的矩阵,构造方式见样例。
输入
输出
样例输入
4
样例输出
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
我的答案是:
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
int a[21][21];
int main ()
{
unsigned long long n;
cin>>n;
memset(a,0,sizeof(a));
for(int i=1;i<=n;i++)
{
a[0][i]=a[n+1][i]=a[i][0]=a[i][n+1]=1;
}
unsigned long long x=1,y=1,p=1;
while (p<=n*n)
{
while (a[x][y]==0) a[x][y++]=p++;
x++;y--;
while (a[x][y]==0) a[x++][y]=p++;
x--;y--;
while (a[x][y]==0) a[x][y--]=p++;
x--;y++;
while (a[x][y]==0) a[x--][y]=p++;
x++;y++;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
printf("%d ",a[i][j]);
}
cout<<endl;
}
system("pause");
return 0;
}
想要竖着来,可结果却是横着来
输出为:
3
1 2 3
8 9 4
7 6 5
请大神们帮我改一改吧
qq:1739452401
谢谢!
——一个初学c++的小学生