C++ 我必须计算一个方阵的对角元素和的差
在以下程序中:C++ 我必须计算一个方阵的对角元素和的差,c++,C++,在以下程序中: #include <iostream> #include <cmath> using namespace std; int diagonalDifference(int x[][],int n) { int sum1=0,sum2=0,y; for(int i=0;i<n;i++) { sum1+=x[i][i]; sum2+=x[i][n-1-i]; } y=abs(sum1
#include <iostream>
#include <cmath>
using namespace std;
int diagonalDifference(int x[][],int n)
{
int sum1=0,sum2=0,y;
for(int i=0;i<n;i++)
{
sum1+=x[i][i];
sum2+=x[i][n-1-i];
}
y=abs(sum1-sum2);
return y;
}
int main()
{
int n,**z;
cin>>n;
int arr[n][n];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cin>>arr[i][j];
}
}
z=diagonalDifference(arr,n);
cout<<x;
return 0;
}
您能帮我修复它吗?
int[][]
不是有效的类型:
int diagonalDifference(int x[][],int n)
您将z
声明为int**
:
int n,**z;
但是你给它分配了一个int
:
int diagonalDifference(int x[][],int n);
z=diagonalDifference(arr,n);
最后打印不存在的x
:
cout<<x;
您的代码有多个问题。首先,C++不支持。其次比较z
的类型和diagonalDifference
的返回类型。
cout<<x;
int diagonalDifference(int x**,int n) { /* .... */ }
int matrix_size = 0;
std::cin >> matrix_size;
std::vector<std::vector<int>> matrix{matrix_size, std::vector<int>{matrix_size}};
/* fill the matrix */
const int diag_diff = diagonalDifference(matrix, matrix_size);
std::cout << diag_diff << '\n';