CCF第二題之Z字形掃描(只有90分555555)

還很菜的螺絲釘發表於2020-12-06

有哪位大佬幫我看看是哪裡出了錯嘛,為什麼一直只有90分,孩子哭了5555555T-T
在這裡插入圖片描述在這裡插入圖片描述

#include <bits/stdc++.h>
using namespace std;
#define N 500
int main()
{
    std::ios::sync_with_stdio(false);
    int n;
    cin>>n;
    int arr[N][N]={0};
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>arr[i][j];
        }
    }
    for(int i=1;i<=n;i++)
    {
       int temp0=i;
       if(i%2==1)
       {
           for(int j=1;j<=i;j++)
           {
               cout<<arr[temp0][j]<<" ";
               temp0--;
           }
       }
       else
       {
           for(int j=1;j<=i;j++ )
           {
               cout<<arr[j][temp0]<<" ";
               temp0--;
           }
       }
    }//左上三角
    if(n%2==0)//偶數
    {
        for(int i=2;i<=n;i++)
        {
             int temp1=i;
             if(i%2==1)
             {
                 for(int j=n;j>=i;j--)
                 {
                    cout<<arr[temp1][j]<<" ";
                    temp1++;
                 }
             }
             else
             {
                for(int j=n;j>=i;j--)
                {
                   cout<<arr[j][temp1]<<" ";
                   temp1++;
                }
            }
        }
    }
    if(n%2==1)//奇數
    {
        for(int i=2;i<=n;i++)
        {
             int temp2=i;
             if(i%2==0)
             {
                 for(int j=n;j>=i;j--)
                 {
                    cout<<arr[temp2][j]<<" ";
                    temp2++;
                 }
             }
             else
             {
                for(int j=n;j>=i;j--)
                {
                   cout<<arr[j][temp2]<<" ";
                   temp2++;
                }
            }
        }
    }
    return 0;
}

相關文章