1. 程式人生 > >矩陣的舞蹈

矩陣的舞蹈

矩陣有很多操作就像舞蹈一樣,如行列的置換,矩陣的轉置等。今天我們只看矩陣的旋轉,希望得到當前矩陣順時針旋轉90度以後得到的矩陣。

Input

輸入資料的第一行是一個正整數T,代表有T組測試樣例。接下來T組資料,每組資料第一行是兩個整數M,N (0 < M , N < 100),分別代表矩陣的行數和列數。然後是矩陣本身,共M行,每行N個數據用空格隔開。

Output

對於每組輸入的矩陣,第一行輸出Case #k:(k為該組資料的序號,具體格式見樣例),然後輸出其旋轉後的矩陣。

Sample Input

2
4 4
1 2 3 4
5 6 7 8
6 6 6 6
8 8 8 8
2 3
1 2 3
4 5 6

Sample Output

Case #1:
8 6 5 1
8 6 6 2
8 6 7 3
8 6 8 4
Case #2:
4 1
5 2
6 3

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,m,a[101][101],t,x,y,i,j;
    cin>>t;
while(t--){
cin>>m>>n;
   for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            cin>>a[i][j];
        }
    }
    for(i=0;i<n;i++)  //以前的行下標變成列標
    {
        for(j=m-1;j>0;j--)  //以前列標與現在行標的順序相反
        printf("%d ",a[j][i]);
        printf("%d\n",a[0][i]);
    }

}
    return 0;
}