#32490: 請問這樣為甚麼不行


k0908062827@gmail.com (_hcchs_)

學校 : 不指定學校
編號 : 193004
來源 : [116.241.50.72]
最後登入時間 :
2022-09-30 14:58:40
b266. 矩陣翻轉 -- 2016 APCS 實作題第二題 | From: [116.241.50.72] | 發表日期 : 2022-10-16 11:46

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    int R,C,M,a,counter=0;
    cin>>R>>C>>M;
    if(R>C) a=R;
    else a=C;
    int B[a][a],A[a][a],c[M];
    memset(B,0,sizeof(B));
    memset(A,0,sizeof(A));
    for(int i=0;i<R;i++)
    {
        for(int j=0;j<C;j++)
        {
            cin>>B[i][j];
        }
    }
    for(int i=0;i<M;i++)
    {
        cin>>c[i];
    }
    for(int i=M-1;i>=0;i--)
    {
        if(c[i]==0)
        {
            for(int j=0;j<a;j++)
            {
                for(int k=0;k<a;k++)
                {
                  A[a-1-k][j]=B[j][k];
                }
            }
            for(int j=0;j<a;j++)
            {
                for(int k=0;k<a;k++)
                {
                 B[j][k]=A[j][k];
                }
            }
            counter++;
        }
        else
        {
            for(int j=0;j<a;j++)
            {
                for(int k=0;k<a;k++)
                {
                  A[j][k]=B[a-1-j][k];
                }
            }
            for(int j=0;j<a;j++)
            {
                for(int k=0;k<a;k++)
                {
                 B[j][k]=A[j][k];
                }
            }
        }
    }
    if(counter%2==0)
    {
        cout<<R<<" "<<C<<endl;
        for(int i=0;i<a;i++)
    {
        for(int j=1;j<a;j++)
        {
            if(j==1)
            {
                cout<<B[i][j];
            }
            else
            {
                cout<<" "<<B[i][j];
            }
        }
        cout<<endl;
    }
    }
    else
    {
        cout<<C<<" "<<R<<endl;
        for(int i=1;i<a;i++)
    {
        for(int j=0;j<a;j++)
        {
            if(j==0)
            {
                cout<<B[i][j];
            }
            else
            {
                cout<<" "<<B[i][j];
            }
        }
        cout<<endl;
    }
    }
    return 0;
}

 

 
ZeroJudge Forum