gpt4 book ai didi

用于显示显示垃圾值的矩阵元素的 C++ 函数

转载 作者:行者123 更新时间:2023-12-03 12:47:08 26 4
gpt4 key购买 nike

过了很长一段时间,我又回到了编码,只是通过这个简单的问题来磨练我的技能,以显示矩阵的对角线和。虽然我设法通过“getMatrix”函数将矩阵元素提取到 int 数组中,但另一个“showMatrix”却显示垃圾值。错误在哪里?

#include<iostream>
using namespace std;
int i,j;
void getMatrix(int M[100][100])
{
for(int a=1;a<=i;a++)
{
for(int b=1;b<=j;b++) cin>>M[a][b];
}
}
-------------------------this function----------------------------------------
void showMatrix(int M[100][100])
{
for(int a=1;a<=i;a++)
{
cout<<endl;
for(int b=1;b<=j;b++) cout<<M[a][b]<<cout<<" ";
}
}
------------------------------------------------------------------------------
int main()
{
int sum=0;
int m[100][100];
cout<<"Enter matrix dimensions";
cin>>i>>j;
cout<<"Enter Matrix elements\n";
getMatrix(m);
cout<<"Matrix is : ";
showMatrix(m);
for(int n=0;n<=i;n++)sum+=m[n][n];
cout<<"\n sum of diagonal elements is "<<sum;
}

如果我输入 1 2 3 4 它应该显示为1 2矩阵式 3 4但相反,它的表现10x4c6864 20x4c686430x4c6864 40x4c6864 矩阵样式。

最佳答案

    for(int b=1;b<=j;b++) cout<<M[a][b]<<cout<<" ";

这里打印到标准输出:值 M[a][b] 和指向 cout 的指针。这就是为什么你会得到“垃圾值”(0x4c6864),它们是指针地址。正确的 for 循环是:

for(int b=1;b<=j;b++) cout<<M[a][b]<<" ";

此外,在总和中n从0开始,而在show/getMatrix中a从1开始

for(int n=0;n<=i;n++)sum+=m[n][n];

关于用于显示显示垃圾值的矩阵元素的 C++ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56120066/

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