高階58 矩陣轉換

2021-10-05 09:49:33 字數 1234 閱讀 4661

58 矩陣轉換

問題描述 :

明明是乙個很聰明的孩子,學什麼東西都很快。但是他也有個缺點,就是不願意做重複的勞動,往往學會一樣東西以後,就不太願意再去碰它。有一天,明明在數學課上學了矩陣的轉換,即有乙個r×r的矩陣,把矩陣中的數以左上到右下的對角線的方式進行交換,然後形成乙個新的矩陣。

例如:有個3×3的矩陣如下:

1 2 3

4 5 6

7 8 9

通過以左上到右下的對角線交換後,形成了乙個新的矩陣:

1 4 7

2 5 8

3 6 9

明明很快就學會了,然後自己動手做了幾個類似的轉換。但是,課後老師布置了很多矩陣轉換的作業,讓同學回家練習,這就使明明很厭煩了,覺得自己已經學會了,就沒有再練習的必要了。於是明明就請你幫個忙,幫他寫乙個程式,來計算矩陣的交換,幫他完成老師布置的作業。

明明的問題可以歸結為:有乙個r×r的矩陣,把矩陣中的數以左上到右下的對角線的方式進行轉換,然後輸出轉換後的矩陣。

輸入說明 :

你寫的程式要求從標準輸入裝置中讀入測試資料作為你所寫程式的輸入資料。標準輸入裝置中有多組測試資料,每組測試資料有多行,每組測試資料的第一行有乙個整數r(1≤r≤10),表示乙個r×r的矩陣,接下來有r行,每行有r個整數,表示要轉換的矩陣中的數,每個數用乙個空格隔開。每組測試資料與其後一組測試資料之間沒有任何空行,第一組測試資料前面以及最後一組測試資料後面也都沒有任何空行。

輸出說明 :

對於每一組測試資料,你寫的程式要求計算出一組相應的運算結果,並將這一組運算結果作為你所寫程式的輸出資料依次寫入到標準輸出裝置中。每組運算結果為乙個轉換後的矩陣。每組運算結果形成r行資料,每一行的數字之間以乙個空格分隔,其行首和行尾都沒有任何空格,每組運算結果與其後一組運算結果之間有乙個空行,最後一組運算結果後面沒有空行。 注:通常,顯示屏為標準輸出裝置。

輸入範例 :

41 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

21 3

2 4輸出範例 :

1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16

1 23 4

#include

intmain()

}for

(i=0

;i)printf

("\n");

}return0;

}

58 矩陣轉換

58 矩陣轉換 問題描述 明明是乙個很聰明的孩子,學什麼東西都很快。但是他也有個缺點,就是不願意做重複的勞動,往往學會一樣東西以後,就不太願意再去碰它。有一天,明明在數學課上學了矩陣的轉換,即有乙個r r的矩陣,把矩陣中的數以左上到右下的對角線的方式進行交換,然後形成乙個新的矩陣。例如 有個3 3的...

矩陣特殊轉換

習題描述 將乙個5 5的矩陣中最大的元素放在中心,四個角分別放四個最小的元素 順序從左到右,從上到下順序依次從小到大存放 寫乙個函式實現之。用main函式呼叫。例如原來矩陣 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 ...

Transforms CTM, 轉換矩陣

transforms ctm,轉換矩陣 quartz轉換實現的原理 quartz把繪圖分成兩個部分,使用者空間,即和裝置無關,裝置空間,使用者空間和裝置空間中間存在乙個轉換矩陣 ctm 本章實質是講解ctm quartz提供的3大功能 移動,旋轉,縮放 演示如下,首先載入一張 void cgcont...