服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++实现转置矩阵的循环

C++实现转置矩阵的循环

2022-08-05 11:29Alkaid#3529 C/C++

大家好,本篇文章主要讲的是C++实现转置矩阵的循环,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

前言

矩阵的转置主要考查我们对循环的使用,通过简单的循环结构,我们可以很方便的完成矩阵的转置。

C++实现转置矩阵的循环

一、思路分析

转置矩阵与原矩阵的区别在于行列交换,我们可以构建一个二维数组完成对原矩阵的存储,我们只需将每个元素与其行列相反的位置处的元素进行交换,就可完成对矩阵的转置。

C++实现转置矩阵的循环

二、代码实现

1.转置矩阵函数

我们首先编写一个函数,完成对矩阵的转置。

代码如下(示例):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* alkaid#3529 */
 
// 转职矩阵函数,按照指定的矩阵大小将矩阵转置
void transpose_matrix(int matrix[10][10], int a);
 
// 函数实现
void transpose_matrix(int matrix[10][10], int a) // int matrix[10][10] 为存储矩阵的数组,int a 为所需转置矩阵的大小
{
    int mid = 0; // 中间量,辅助值的传递
 
    for (int i = 0; i < a; i++) // 从行开始,逐行检索
    {
        for (int j = i + 1; j < a; j++) // 对该行每一列的元素检索
        {
        // 将对应位置的两个元素交换位置
            mid = matrix[i][j];
            matrix[i][j] = matrix[j][i];
            matrix[j][i] = mid;
        }
    }
 
    return;
}

2.调用函数实现转置矩阵

我们在主函数中只需调用已经写好的函数,对转置前后的矩阵分别输出即可。

代码如下(示例):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* alkaid#3529 */
 
#include<iostream>
using namespace std;
 
// 转职矩阵函数,按照指定的矩阵大小将矩阵转置
void transpose_matrix(int matrix[10][10], int a);
 
int main()
{
 
    int matrix[10][10];
    int size = 0;
 
 
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            matrix[i][j] = (i * i + j * i + j ^ i) % 10;
        }
    }
 
    //  读入要求的矩阵大小,方便起见,使用矩阵的默认值,默认为方阵
    cout << "请输入矩阵的尺寸 (方便起见,矩阵大小设在10以内) :\n";
    cout << "size = ";
    cin >> size;
 
    cout << "\n原矩阵为:\n";
 
    // 输出原矩阵
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            cout << matrix[i][j] << "  ";
        }
        cout << endl;
    }
 
    transpose_matrix(matrix, size);
 
    cout << "\n转置后的矩阵为:\n";
 
    //  输出转置后的矩阵
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            cout << matrix[i][j] << "  ";
        }
        cout << endl;
    }
 
    return 0;
 
}
 
void transpose_matrix(int matrix[10][10], int a)
// int matrix[10][10] 为存储矩阵的数组,int a 为所需转置矩阵的大小
{
    int mid = 0; // 中间量,辅助值的传递
 
    for (int i = 0; i < a; i++) // 从行开始,逐行检索
    {
        for (int j = i + 1; j < a; j++) // 对该行每一列的元素检索
        {
            // 将对应位置的两个元素交换位置
            mid = matrix[i][j];
            matrix[i][j] = matrix[j][i];
            matrix[j][i] = mid;
        }
    }
 
    return;
}

运行程序,看看效果如何。

C++实现转置矩阵的循环

C++实现转置矩阵的循环

正常运行,且功能完整,可以放心复制黏贴使用。

总结

矩阵转置,除了本文介绍的方法外,还可以利用三元组的形式完成对稀疏矩阵的转置,感兴趣的话不妨点个关注,会在后续的数据和结构与算法专栏进行详细讲解哦!

到此这篇关于c++实现转置矩阵的循环的文章就介绍到这了,更多相关c++转置矩阵循环内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_51661256/article/details/122264174

延伸 · 阅读

精彩推荐
  • C/C++C语言中经socket接收数据的相关函数详解

    C语言中经socket接收数据的相关函数详解

    这篇文章主要介绍了C语言中经socket接收数据的相关函数详解,分别为recv()函数和recvfrom()函数以及recvmsg()函数的使用,需要的朋友可以参考下...

    C语言教程网4422021-03-11
  • C/C++简单实现C++复数计算器

    简单实现C++复数计算器

    这篇文章主要为大家详细介绍了C++简单实现复数计算器的的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一...

    Hseeker5952021-04-06
  • C/C++C++98/11/17表达式类别(小结)

    C++98/11/17表达式类别(小结)

    这篇文章主要介绍了C++98/11/17表达式类别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小...

    jerry_fuyi6552021-09-07
  • C/C++VC6.0常用快捷键大全

    VC6.0常用快捷键大全

    这篇文章主要介绍了VC6.0常用快捷键大全,非常实用,需要的朋友可以参考下...

    C语言程序设计4402021-01-25
  • C/C++C字符串操作函数的实现详细解析

    C字符串操作函数的实现详细解析

    以下是对C语言中字符串操作函数的实现进行了详细的分析介绍,需要的朋友可以过来参考下...

    C语言教程网5102020-12-21
  • C/C++C++11新特性中auto 和 decltype 区别和联系

    C++11新特性中auto 和 decltype 区别和联系

    这篇文章主要介绍了C++11新特性中auto 和 decltype 区别和联系的相关资料,需要的朋友可以参考下...

    C++教程网4462021-04-28
  • C/C++C++实现LeetCode(16.最近三数之和)

    C++实现LeetCode(16.最近三数之和)

    这篇文章主要介绍了C++实现LeetCode(16.最近三数之和),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    Grandyang7112021-11-24
  • C/C++WIN32程序获取父进程ID的方法

    WIN32程序获取父进程ID的方法

    这篇文章主要介绍了WIN32程序获取父进程ID的方法,在进行windows程序开发的时候有一定的实用价值,需要的朋友可以参考下...

    C语言程序设计12402021-01-25