救救孩子吧,能出结果,但显示运行出错,为什么呀,求大神指教
ccf吧
全部回复
仅看楼主
level 1
#include<iostream>
using namespace std;int main()
{
int n,i,j,t,m;
cin>>n;
int a[n][n],b[n*n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a[i][j];
}
}
i=0;
j=0;
t=n*n;
m=0;
int tap=3;
while(t--)
{
if(i!=n-1&&tap==1&&j!=0) //左下, 1
{
b[m++]=a[i++][j--];
tap=1;
//cout<<'1'<<" ";
}
if(tap==1&&i==n-1) //i==n-1,右,3
{
b[m++]=a[i][j++];
tap=3;
//cout<<'2'<<" ";
}
if(j==0&&tap==1&&i!=n-1) //j==0,下 ,3
{
b[m++]=a[i++][j];
tap=3;
//cout<<'3'<<" ";
}
if(tap==3&&j!=n-1&&i!=0) //右上 ,3
{
b[m++]=a[i--][j++];
tap=3;
//cout<<'4'<<" ";
}
if(j==n-1&&tap==3) //j==n-1,下,1
{
b[m++]=a[i++][j];
tap=1;
//cout<<'5'<<" ";
}
if(tap==3&&j!=n-1&&i==0) //i=0,右,1
{
b[m++]=a[i][j++];
tap=1;
//cout<<'6'<<" ";
}
}
//cout<<endl;
t=n*n;
for(i=0;i<t;i++)
{
cout<<b[i]<<" ";
}
return 0;
}
2020年01月07日 13点01分 1
level 1
这个是14年12 月的Z字形扫描
2020年01月07日 13点01分 2
1