寫一函式,將乙個3 3的整型矩陣轉置

2022-09-08 18:33:12 字數 796 閱讀 6526

解題思路:矩陣轉置就是行變列,列變行,說白了就是 arry[i][j] 轉換為 arry[j][i] ; 但是需要注意的是,

一. 因為行列個數可能並非相同,轉換後行數或者列數變多了或者變少,因此不能直接轉換。需要重新申請空間儲存轉換後的資料。

二. 二維陣列是線性扁平化儲存的,無法確定列數的情況下傳參後,在函式中使用時需要頭指標向後偏移 列數*第n行 才能訪問到第n行的資料。例如在函式中訪問 arry[i][j] ,需要通過arry + col_num*i + j 方式進行訪問。

答案:

#include int **transform(int **arry, int row_count, int col_count)

for (int i = 0; i < col_count; i++)

} return p;

}int main() }

int **p = transform(arry, 3, 4);

printf("\n");

for (int i = 0; i < 4; i++)

free(p[i]); // 釋放二級指標中每個一級指標申請的空間

printf("\n");

} free(p);//釋放總體二級指標的空間

寫一函式,將乙個3 3的整型矩陣轉置。

寫一函式,將乙個3 3的整型矩陣轉置。指標法 方法一 include void trans int s 3 int x,int y 定義轉置函式 intmain 轉置函式 void trans int s 3 int x,int y 方法二 利用動態記憶體分配 include include voi...

用python寫乙個蛇形矩陣

蛇形矩陣,如 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4從右上角大回環,其實挺簡單,思路想明白了就順了。這樣的矩陣可以看做二維陣列,python對陣列的寫法很麻煩,用numpy生成就簡單多了 myarray np.zeros n,n dtype np.int16 有...

乙個用GPU寫的矩陣乘法

這個過程相當繁瑣,個人認為有優化的可能 先說一下思路,矩陣相乘a矩陣乘b矩陣相當於a矩陣和b矩陣的轉置做內積.所以我就先把b矩陣做了轉置,再做內積.其中有兩個核函式是在主函式中執行的,先執行轉置,再執行乘法.再乘法函式中又巢狀了乙個內積函式.這樣充分的利用了並行化.如圖所示 以3 3矩陣為例.我先開...