gpt4 book ai didi

c++ - 将两个二维数组传递给函数 c++

转载 作者:行者123 更新时间:2023-11-28 02:15:38 25 4
gpt4 key购买 nike

我正在尝试制作一个程序,从用户那里获取两个矩阵的输入。然后将输入的数据传递给另一个函数进行计算。两个矩阵的总和被传递给第三个函数以打印输出。

我面临的问题是在函数之间传递数组,否则代码的逻辑没问题。

我的代码的问题是我没有得到打印函数的输出。 add 函数也不做任何计算,因为我认为数组中的数据没有传递。

有人可以向我解释一下我在路过时做错了什么吗。

const int MTRX_MAX = 3;

//Function Prototypes
void Get_Matrix(); //Ask the user for input
void Add_Matrix(int matrix1[][MTRX_MAX], int matrix2[][MTRX_MAX], int sum[][MTRX_MAX]); //Calculates the sum of the matrecies
void Print_Matrix(int matrix1 [][MTRX_MAX], int matrix2 [][MTRX_MAX]); //Printout the inputed data

int main()
{
int matrix1[MTRX_MAX][MTRX_MAX];
int matrix2[MTRX_MAX][MTRX_MAX];
int sum[MTRX_MAX][MTRX_MAX];

Get_Matrix();
Add_Matrix(matrix1,matrix2,sum);
Print_Matrix(matrix1, matrix2,sum);

return 0;
}

//Function Definetions
void Get_Matrix()
{
int matrix1[3][3] = { 0 };
int matrix2[3][3] = { 0 };

cout << "Enter the first Matrix: \n";

for (int i = 0; i < MTRX_MAX; i++)
{
for (int j = 0; j < MTRX_MAX; j++)
{
cin >> matrix1[i][j];
}
}
////////////////
cout << "Enter the second Matrix: \n";

for (int i = 0; i < MTRX_MAX; i++)
{
for (int j = 0; j < MTRX_MAX; j++)
{
cin >> matrix2[i][j];
}
}
}

void Add_Matrix(int matrix1[][MTRX_MAX], int matrix2[][MTRX_MAX], int sum[][MTRX_MAX])
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
sum[i][j] = matrix1[i][j] + matrix2[i][j];
}
}

}

void Print_Matrix(int matrix1[][MTRX_MAX], int matrix2[][MTRX_MAX])
{
for (int i = 0; i < MTRX_MAX; i++)
{
for (int new_line = 0; new_line < 1; new_line++)
{
for (int j = 0; j < MTRX_MAX; j++)
{
cout << sum[i][j] << " ";
}
cout << endl;
}
}
}

程序输出:

Enter the first Matrix:

1 2 3 4 5 6 7 8 9

Enter the second Matrix:

9 8 7 6 5 4 3 2 1

-1717986920 -1717986920 -1717986920 -1717986920 -1717986920 -1717986920 -1717986920 -1717986920 -1717986920

Press any key to continue . . .

最佳答案

在评论中:

for (int new_line = 0; new_line == 1; new_line++) //The condition 'new_line==1' doesn't really seems to be fulfilled
{
for (int j = 0; j < MTRX_MAX; j++)
{
cout << matrix1[i][j] << " ";
}
cout << endl;
}

你最终什么也没打印。

更新 1:您实际上不需要那个额外的循环 for (int new_line = 0; new_line == 1; new_line++)

更新 2:void Print_Matrix(int matrix1[][MTRX_MAX], int matrix2[][MTRX_MAX]) 确实知道 int sum[i][j]在你的代码中是。事实上 Print_Matrix(matrix1, matrix2,sum); 与您的声明和定义相矛盾。

关于c++ - 将两个二维数组传递给函数 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34126804/

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