我正在试图让一个程序从用户处获得两个矩阵的输入。然后将输入的数据传递给另一个函数,然后再进行计算。两个矩阵的总和被传递给第三个函数来打印输出。将两个二维数组传递给一个函数C++
我面临的问题是函数之间传递数组,否则代码的逻辑是好的。
我的代码的问题是我没有得到打印功能的输出。另外,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;
}
}
}
程序输出:
输入第一个矩阵:
输入第二个矩阵:
-1717986920 -17 17986920 -1717986920 -1717986920 -1717986920 -1717986920 -1717986920 -1717986920 -1717986920
按任意键继续。 。 。
我建议你把你的矩阵放在一个结构体中,然后传递它,或者使用'std :: array'等等,它将会更容易处理。 –
你好Neli我们还没有在课堂上学过Structs。你能向我解释如何使用它们或指导我发表一篇文章。 – ashumrani
@ashumrani检查这里的数据结构,例如:http://www.cplusplus.com/doc/tutorial/structures/ –