我在打印isSymmetric函数时遇到问题,我不知道如何正确打印它。而且我无法在Google中找到解决方案。
#include <iostream>
#include <iomanip>
using namespace std;
const int MAX = 100;
void transpose(int mat[MAX][MAX], int tr[][MAX], int N)
{
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
tr[i][j] = mat[j][i];
}
bool isSymmetric(int mat[MAX][MAX], int N)
{
int tr[MAX][MAX];
transpose(mat, tr, N);
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
if (mat[i][j] != tr[i][j])
return false;
return true;
}
void main() {
int matrix_size;
cout << "Enter rows and columns for quaratic matrix: ";
cin >> matrix_size;
//int* a = (int*)malloc(row * col * sizeof(int));
const int col = 99, row = 99;
int a[col][row];
srand((unsigned)time(NULL));
for (int i = 0; i < matrix_size; i++)
for (int j = 0; j < matrix_size; j++)
a[i][j] = 0 + rand() % (20 - 0 + 1);
cout << endl;
for (int i = 0; i < matrix_size; i++) {
for (int j = 0; j < matrix_size; j++)
cout << setw(4) << a[i][j];
cout << endl;
}
//if (isSymmetric(a, matrix_size)) has a problem
if (isSymmetric(a, matrix_size))
cout << "Yes";
else
cout << "No";
}
我收到以下错误,我不知道它的说法是什么:类型为“ int()[99U]”的错误(活动)E0167参数与类型为“ int()[100]”的参数不兼容
你的功能需要int mat[MAX][MAX]
他们的争论中,在那里MAX
是100,你通过他们int a[col][row]
在那里row
和col
是99。这就造成这个问题,因为有100个元素的数组是不一样的99个元素数组...