首先我們預設=表示轉置符號那麼行列轉置有;
//[0][0]=[0][0] //[0][1]=[1][0] //[0][2]=[2][0]
//[1][0]=[0][1] //[1][1]=[1][1] //[1][2]=[2][1]
//[2][0]=[0][2] //[2][1]=[1][2] //[2][2]=[2][2]
1.我們觀察到行列轉置在表面上是行列交換
2.但是我們發現,對角線是不用處理的所以有
//[0][0]=[0][0] //[1][1]=[1][1] //[2][2]=[2][2]
換成**描述就是
if(x==y)
2.再仔細觀察我們發現
//[0][1]=[1][0]
//[1][0]=[0][1]
//[0][2]=[2][0] //[2][0]=[0][2]
//[1][2]=[2][1]
//[2][1]=[1][2]
發現存在重複置換導致最後沒有效果
所以考慮控制轉置次數發現把行控制在2時就可以了,原因是最後一行每個元素都存在重複置換或者是不需要執行操作的元素
所以完整**如下:
public class 陣列轉置 ,,};//三行三列的矩陣system.out.println("轉置前:");
print(data);
transfer(data);
system.out.println("轉置後:");
print(data);
} public static int transfer(int temp) ,,};//三行三列的矩陣
system.out.println("轉置前:");
print(data);
transfer(data);
system.out.println("轉置後:");
print(data);
} public static int transfer(int temp)
} return temp;
}
public static void print(int temp)
system.out.println();}}
}
二維陣列轉置
輸入乙個n行m列的陣列,輸出他的轉置,具體來說 輸出的第i行第j個數字,應是輸入的第j行第i個數字。1 n 100 1 m 100 1 aij 1000 input 第一行兩個整數n,m表示陣列的行數和列數 接下來n行,每行m個整數表示陣列內容。output 第一行先輸出m,n。接下來輸出轉置的結果...
c 二維陣列轉置程式
include main else if x 2 else scanf s sz3 輸入陣列的各個元素 switch x for i 0 i for j 0 j printf d sz1 i j break case2 for i 0 i 判斷陣列型別之後進入替換 for j 0 j zh2 j b...
二維陣列的輸入 輸出 轉置
這裡我將在二維陣列中的一些基本操作進行一次整理 編碼思路 1.inputtwoarry 輸入函式 用於二維陣列的初始化。也就是賦值 2.outputtwoarry1 輸出函式 用於二維陣列列印輸出。一般實現方法,需要先確定二維陣列的列數 a n 實現 類似輸入函式與其引數相同。也用了兩層迴圈將陣列中...