首先,我們分析:
這個問題無非就是把m乘n的值賦值給n乘m,然後再輸出不是麼?
那我們假設m=3,n=2那就是三行兩列,把它轉換為2*3,那也就是兩行三列。
方便理解我們可以定義兩個陣列a[3][2],b[2][3]。
a[3][2]裡有六個元素分別為:a[0][0] ,a[0][1], a[1][0], a[1][1], a[2][0], a[2][1]
b[2][3]裡有六個元素分別為:b[0][0] ,b[0][1] ,b[0][2] ,b[1][0] ,b[1][1] ,b[1][2]
首先我們要對二維陣列a[3][2]進行輸入才可以進行轉換,不然沒有值,換個寂寞。那我們就先來編寫輸入值的**:
#include
"stdio.h"
#define m 3
//對m進行乙個巨集定義為3
#define n 2
//同理對n進行巨集定義為2
void
main()
//內迴圈結束
}//外迴圈結束
這裡我的main函式的結束花括號沒有打,因為程式還沒有編寫完成,所以讓我們來繼續編寫
賦值完了,讓我們以3*2的矩陣形式輸出來給我們看看,那我們繼續編寫:
for
(i=0
;i)//內迴圈結束
printf
("\n");
//換行
}//外迴圈結束
好,寫到這裡我們完成了一半,下面就是重點,轉換部分:
printf
("轉換成2*3的為:\n");
//為了看的更清楚列印輸出這句話
for(i=
0;i)//內迴圈結束
}//外迴圈結束
到現在我們已經完成了轉換,相信有些同學可能有些迷惑,沒關係,我後面來解釋,最後讓我們輸出一下,這個程式就算是完成了,讓我們來看一下:
for
(i=0
;i)//內迴圈結束
printf
("\n");
//換行
}//外迴圈結束
}//main函式結束
這裡我們主要講解一下轉換部分,為了方便理解,我用一張**來把兩個陣列的下標對應出來ba
0000
0110
0220
1001
1111
1221
大家可以逐一對應一下可以發現,a的值完全賦值給了b,這個地方需要大家仔細觀察,多加理解。
#include
"stdio.h"
#define m 3
#define n 2
void
main()
}for
(i=0
;i)printf
("\n");
}printf
("轉換成2*3的為:\n");
for(i=
0;ifor(i=
0;i)printf
("\n");
}}
**放在這裡有,同學們可以參考一下,最好自己看一遍,自己打一遍對照著我的程式,但不要完全抄。還是那句話,一遍沒看懂,別擔心。再看一遍,記得我得啟蒙老師說過一句話:程式設計經不起同學們思考。加油! 矩陣的轉置 C語言
include include 非對稱矩陣的轉置 採用了將乙個矩陣的轉置矩陣放在另乙個矩陣中的做法 void print int m,int n,int c m n void fun int m,int n,int a m n int b n m int main int m int n int i...
求N M矩陣的轉置矩陣(C語言)
程式如下 include int main printf output array a n for i 0 i printf n printf noutput array b n for i 0 i return 0 第一次執行時將定義陣列的語句放在第一句,形如int n,m,a n m b m n...
C語言 用指標實現矩陣轉置
題目如下 編寫乙個函式 void transpose int matrix 10 int n 實現對乙個矩陣的前n行和前n列轉置。先在主函式中初始化如下矩陣,然後輸入n n 10 呼叫transpose函式前n行n列的轉置。1 3 5 7 9 6 5 4 3 2 2 4 6 8 0 7 6 5 4 ...