返回列表 發帖

[測驗紀錄] 2025/03/08

本週測驗題目:

APCS 實作題 10503-2 矩陣轉換

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int d1[10][10],d2[10][10],o[10];
  4. int r,c,m;
  5. int main()
  6. {
  7.     cin.tie(0);
  8.     cin.sync_with_stdio(0);

  9.     cin>>r>>c>>m;
  10.     for(int i=0;i<r;i++)
  11.     {
  12.         for(int j=0;j<c;j++)
  13.         {
  14.             cin>>d1[i][j];
  15.         }
  16.     }
  17.     for(int i=0;i<m;i++)
  18.     {
  19.         cin>>o[i];
  20.     }

  21.     for(int k=m-1;k>=0;k--)
  22.     {
  23.         if(o[k]==1)
  24.         {
  25.             for(int i=0;i<r;i++)
  26.             {
  27.                 for(int j=0;j<c;j++)
  28.                 {
  29.                     d2[i][j]=d1[r-i-1][j];
  30.                 }
  31.             }

  32.             memcpy(d1,d2,sizeof(d2));
  33.         }
  34.         else
  35.         {
  36.             int tmp=r;
  37.             r=c;
  38.             c=tmp;

  39.             for(int i=0;i<r;i++)
  40.             {
  41.                 for(int j=0;j<c;j++)
  42.                 {
  43.                     d2[i][j]=d1[j][r-i-1];
  44.                 }
  45.             }

  46.             memcpy(d1,d2,sizeof(d2));
  47.         }
  48.     }

  49.     cout<<r<<" "<<c<<"\n";

  50.     for(int i=0;i<r;i++)
  51.     {
  52.         cout<<d1[i][0];
  53.         for(int j=1;j<c;j++)
  54.         {
  55.             cout<<" "<<d1[i][j];
  56.         }
  57.         cout<<"\n";
  58.     }


  59.     return 0;
  60. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int R, C, M, x;
  4. int a[11][11], b[11][11];
  5. void rFlip()
  6. {
  7.     for (int i=0; i<R; i++)
  8.     {
  9.         for (int j=0; j<C; j++)
  10.         {
  11.             b[i][j] = a[i][j];
  12.         }
  13.     }
  14.     for (int i=0; i<R; i++)
  15.     {
  16.         for (int j=0; j<C; j++)
  17.         {
  18.             a[i][j] = b[R-1-i][j];
  19.         }
  20.     }
  21. }
  22. void rRotate()
  23. {
  24.      for (int i=0; i<R; i++)
  25.     {
  26.         for (int j=0; j<C; j++)
  27.         {
  28.             b[i][j] = a[i][j];
  29.         }
  30.     }
  31.     for (int j=C-1; j>=0; j--)
  32.     {
  33.         for (int i=0; i<R; i++)
  34.         {
  35.             a[C-1-j][i] = b[i][j];
  36.         }
  37.     }
  38.     swap(R, C);
  39. }
  40. int main()
  41. {
  42.     while (cin >> R >> C >> M)
  43.     {
  44.         for (int i=0; i<R; i++)
  45.         {
  46.             for (int j=0; j<C; j++)
  47.             {
  48.                 cin >> a[i][j];
  49.             }
  50.         }
  51.         int op[M];
  52.         for (int i=0; i<M; i++)
  53.         {
  54.             cin >> op[i];
  55.         }
  56.         for (int i = M - 1; i >= 0; i--)
  57.         {
  58.             if (op[i] == 0) rRotate();
  59.             else rFlip();
  60.         }

  61.         cout << R << ' ' << C << '\n';
  62.         for (int i=0; i<R; i++)
  63.         {
  64.             for (int j=0; j<C; j++)
  65.             {
  66.                 cout << a[i][j];
  67.                 if (j < C-1)
  68.                 {
  69.                     cout << ' ';
  70.                 }
  71.             }
  72.             cout << '\n';
  73.         }
  74.     }
  75.     return 0;
  76. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int r,c,m;
  4. int d1[10][10],d2[10][10],o[10];
  5. int main()
  6. {
  7.     cin>>r>>c>>m;
  8.     for(int i=0;i<r;i++)
  9.         for(int j=0;j<c;j++)
  10.             cin>>d1[i][j];
  11.     for(int i=0;i<m;i++)
  12.         cin>>o[i];
  13.     for(int k=m-1;k>=0;k--)
  14.     {
  15.         if(o[k]==1)
  16.         {
  17.             for(int i=0;i<r;i++)
  18.                 for(int j=0;j<c;j++)
  19.                 d2[i][j]=d1[r-1-i][j];
  20.             memcpy(d1,d2,sizeof(d2));
  21.         }else
  22.         {
  23.             int tmp=r;
  24.             r=c;
  25.             c=tmp;
  26.             for(int i=0;i<r;i++)
  27.                 for(int j=0;j<c;j++)
  28.                 d2[i][j]=d1[j][r-1-i];
  29.             memcpy(d1,d2,sizeof(d2));
  30.         }
  31.     }
  32.     cout<<r<<" "<<c<<endl;
  33.     for(int i=0;i<r;i++)
  34.     {
  35.         cout<<d1[i][0];
  36.         for(int j=1;j<c;j++)
  37.         {
  38.             cout<<" "<<d1[i][j];
  39.         }
  40.         cout<<endl;
  41.     }
  42.     return 0;
  43. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int r,c,m;
  4. int d1[10][10],d2[10][10],o[10];
  5. int main()
  6. {
  7.     cin>>r>>c>>m;
  8.     for(int i=0;i<r;i++)
  9.     {
  10.         for(int j=0;j<c;j++)
  11.         {
  12.             cin>>d1[i][j];
  13.         }
  14.     }
  15.     for(int i=0;i<m;i++)
  16.     {
  17.         cin>>o[i];
  18.     }


  19.     for(int i=m-1;i>=0;i--)
  20.     {
  21.         if(o[i]==0)
  22.         {
  23.             int tmp=r;
  24.             r=c;
  25.             c=tmp;

  26.             for(int i=0;i<r;i++)
  27.             {
  28.                 for(int j=0;j<c;j++)
  29.                     d2[i][j]=d1[j][r-1-i];
  30.             }
  31.             memcpy(d1,d2,sizeof(d2));
  32.         }else
  33.         {
  34.            for(int i=0;i<r;i++)
  35.            {
  36.                for(int j=0;j<c;j++)
  37.                     d2[i][j]=d1[r-1-i][j];
  38.            }
  39.            memcpy(d1,d2,sizeof(d2));
  40.         }
  41.     }

  42.     cout<<r<<" "<<c<<endl;
  43.     for(int i=0;i<r;i++)
  44.     {
  45.         for(int j=0;j<c;j++)
  46.         {
  47.             cout<<d2[i][j]<<" ";
  48.         }
  49.         cout<<endl;
  50.     }
  51.     return 0;
  52. }
複製代碼

TOP

返回列表