题目描述
解题思路
#include<iostream>
using namespace std;
int a[500][500];
int converse(int a[],int n)
{
int temp;
for(int i=0,j=n-1;i<j;i++,j--)
{
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
int main()
{
int n;
cin>>n;
int b[1000];//临时数组
//初始化
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cin>>a[i][j];
}
}
// z字形扫描
int flag=0;
while(flag<=(2*(n-1))){
int count=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i+j==flag)
{
//count++;
if(flag%2!=0)
{
cout<<a[i][j]<<' ';
}else{
count++;
b[count-1]=a[i][j];
}
}
}
}
converse(b,count);
for(int i=0;i<count;i++)
cout<<b[i]<<' ';
flag++;
}
return 0;
}