设为首页 加入收藏

TOP

C++n阶矩阵求转置矩阵的算法实现
2017-10-21 06:06:49 】 浏览:357
Tags:矩阵 算法 实现

n阶矩阵求转置,也就是沿着左对角线反转矩阵;a[i][j] 与 a[j][i] 对换。

算法实现:

#include
  
   
using namespace std;
template
   
     void swap(T* a, T* b) { T temp = a; *a = *b; *b = temp; return; } template
    
      void transpose(T& a, int rows) { for (int i = 0; i < rows; i++) { for (int j = i + 1; j < rows; j++) { swap(a[i][j], a[j][i]); } } return; } int main() { int a[3][3] = { 1,2,3,4,5,6,7,8,9 }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { cout << a[i][j] << " "; } cout << endl; } transpose(a, 3); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { cout << a[i][j] << " "; } cout << endl; } return 0; }
    
   
  
n * m矩阵的转置,行和列颠倒。

算法实现:

#include
  
   
using namespace std;
template
   
     void swap(T* a, T* b) { T temp = a; *a = *b; *b = temp; return; } template
    
      void transpose(T& a, T1& b,int rows,int cols) { for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { b[j][i] = a[i][j]; } } return; } int main() { int a[4][3] = { 1,2,3,4,5,6,1,2,3,4,5,6 }; int b[3][4] = { 0 }; for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { cout << a[i][j] << " "; } cout << endl; } cout << endl; transpose(a,b,4,3); for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { cout << b[i][j] << " "; } cout << endl; } return 0; }
    
   
  
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C、C++动态数组实现 下一篇c++开发模板notepad++插件开发入门

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目