gpt4 book ai didi

c++ - 输出是从您输入的矩阵打印出矩阵的转置,但我的代码只打印出您输入的第一个矩阵

转载 作者:搜寻专家 更新时间:2023-10-31 00:51:44 24 4
gpt4 key购买 nike

输出是从你输入的矩阵打印出矩阵的转置,但我的代码只打印出你输入的第一个矩阵

它没有显示任何错误,所以我真的不知道该怎么做

#include <iostream>

using namespace std;

int NhapMang(int A[100][100], int n)
{
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
cout << "Nhap A[" << i << "][" << j << "]: ";
cin >> A[i][j];
}
}
return 0;
}

int XuatMang(int A[100][100], int n)
{
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
cout << A[i][j] << " ";
}
cout << "\n";
}
return 0;
}

int DoiGiaTri(int &a, int &b)
{
int tam = a;
a = b;
b = tam;
return 0;
}

int ChuyenVi(int A[100][100], int n)
{
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
DoiGiaTri(A[i][j], A[j][i]);
}
}

XuatMang(A,n);
return 0;
}

int main()
{
int n, A[100][100];
cout << "moi nhap n: ";
cin >> n;
NhapMang(A,n);
XuatMang(A,n);
cout << "\nma tran chuyen vi: \n";
ChuyenVi(A,n);
return 0;
}

输出:

你输入 n,例如 n=3,矩阵:

1 2 3 
4 5 6
7 8 9

矩阵的转置将是:

1 4 7
2 5 8
3 6 9

但实际结果是矩阵的转置

1 2 3
4 5 6
7 8 9

最佳答案

你把所有东西都交换了两次,所以结果和你开始的时候一样。试试这个,我已经评论了更改的行。

int ChuyenVi(int A[100][100], int n)
{
for(int i=0; i<n; i++)
{
for(int j=0; j<i; j++) // <-- change here
{
DoiGiaTri(A[i][j], A[j][i]);
}
}
XuatMang(A,n);
return 0;
}

关于c++ - 输出是从您输入的矩阵打印出矩阵的转置,但我的代码只打印出您输入的第一个矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54177346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com