用c++编写一个3*3矩阵转置的函数,在main()函数中输入数据,并另外创建一个一维数组,

用c++编写一个3*3矩阵转置的函数,在main()函数中输入数据,并另外创建一个一维数组,用来存放前面这个二维数组行元素的和。

1、打开vs2015,新建一个Windows Form窗体程序或者控制台都可以。

2、 定义一个名为array1的数组并赋值:double[,] array1 = new double[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };。

3、右键解决方案下的项目名,添加-类,创建一个名为“turnzhi”的类。

4、转置类的代码为:public static double[,] 转置(double[,] A){ int m, n;m = A.GetLength(0);n = A.GetLength(1);double[,] C = new double[n, m];for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){C[j, i] = A[i, j];}} return C;}。

5、在主程序调用转置类,用两个for循坏将转置后的数组(array)输出来;并将结果显示在textbox中。

6、最后运行程序查看我们编写的结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
#include <iostream>

using namespace std;

int main()
{
    int m1[3][3];
    int m2[3][3];
    int sum[3] ={0, 0, 0};
    int i, j; 
    cout << "请按行输入3*3矩阵:"<<endl;
    for(i = 0;i < 3;++i)
    {
        for(j = 0;j < 3;++j)
        {
            cin >> m1[i][j];
        }
    }
    //计算行和
    for(i = 0;i < 3;++i)
    {
        for(j = 0;j < 3;++j)
        {
            sum[i] += m1[i][j];        
        }
    } 
    //矩阵转置
    for(i = 0;i < 3;++i)
    {
        for(j = 0;j < 3;++j)
        {
            m2[i][j] = m1[j][i];
        }
    } 
    //输出行和
    cout << "初始矩阵行和为:" << sum[0] << " " << sum[1] << " " << sum[2] << endl; 
    //输出转置矩阵
    cout << "转置矩阵:" << endl; 
    for(i = 0;i < 3;++i)
    {
        for(j = 0;j < 3;++j)
        {
            cout << m2[i][j] << " ";    
        }    
        cout << endl;
    } 
    return 0;
}

运行结果:

希望可以帮到你。

本回答被提问者和网友采纳
第2个回答  2015-12-11
#include <stdio.h>

int main()
{
int a1[3][3] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}}, a2[3][3];

int i, j;
for(i = 0; i < 3; ++i)
{
for(j = 0; j < 3; ++j)
{
a2[j][i] = a1[i][j];
}
}
for(i = 0; i < 3; ++i)
{
for(j = 0; j < 3; ++j)
{
printf("%d ", a2[i][j]);
}
printf("\n");
}

return 0;
}

本回答被网友采纳
相似回答