真題演練 M N矩陣轉置

2021-10-05 17:22:18 字數 2154 閱讀 7722

題目:程式設計計算並輸出m*n階矩陣的轉置矩陣。其中,m和n的值由使用者用鍵盤輸入。已知m和n的值都不超過10。

解法1:用二維資料作為函式引數,實現矩陣轉置

#include

#define m 10

#define n 10

void

transpose

(int a[

][n]

,int b[

][m]

,int m,

int n)

;void

inputmatrix

(int a[

][n]

,int m,

int n)

;void

printmatrix

(int b[

][m]

,int m,

int n)

;void

transpose

(int a[

][n]

,int b[

][m]

,int m,

int n)

}void

inputmatrix

(int a[

][n]

,int m,

int n)

void

printmatrix

(int b[

][m]

,int m,

int n)

}int

main()

解法2:用二維陣列的行指標作為函式引數,實現矩陣轉置

#include

#define m 10

#define n 10

void

transpose

(int

(*a)

[n],

int(

*b)[m]

,int m,

int n)

;void

inputmatrix

(int

(*a)

[n],

int m,

int n)

;void

printmatrix

(int

(*b)

[m],

int m,

int n)

;void

transpose

(int

(*a)

[n],

int(

*b)[m]

,int m,

int n)

}void

inputmatrix

(int

(*a)

[n],

int m,

int n)

void

printmatrix

(int

(*b)

[m],

int m,

int n)

}int

main()

解法3:用二維陣列的列指標作為引數,實現矩陣轉置

#include

#define m 10

#define n 10

void

transpose

(int

*a,int

*b,int m,

int n)

;void

inputmatrix

(int

*a,int m,

int n)

;void

printmatrix

(int

*b,int m,

int n)

;void

transpose

(int

*a,int

*b,int m,

int n)

}void

inputmatrix

(int

*a,int m,

int n)

void

printmatrix

(int

*b,int m,

int n)

}int

main()

真題演練 矩陣的鞍點

題目 請程式設計找出乙個m n矩陣中的鞍點,即該位置上的元素是該行上的最大值,是該列上的最小值。如果矩陣中沒有鞍點,則輸出 no saddle point!已知函式原型 void findsaddlepoint int a n int m,int n 在該函式中輸出有無鞍點的資訊。程式執行結果示例1...

真題演練3

2018 2019 acm icpc pacific northwest regional contest div.1 b coprime integers 莫比烏斯反演 容斥 數論 莫比烏斯反演,待填坑 d count the bits 看到有隊伍20min就a了這題,自然而然地覺得這題肯定有規律...

稀疏矩陣的轉置(矩陣轉置和快速轉置)

實現矩陣的轉置 1.將矩陣的行列值相互轉換。2.將每個三元組中的i和j交換。3.重排三元組之間的次序便可實現矩陣的轉置。void transposesmatrix tsmatrix m,tsmatrix t return transposesmatrix快速轉置的原理是 如果能預先確定矩陣m中每一列...