将2D数组传递给C++;给我以下的错误 #包括 #包括 #包括 #包括 #包括 使用名称空间std; \\错误: \\“n”未在此作用域中声明 \\在“,”标记之前应为“)” \\“int”之前应为非限定id 无效Abs_diff(内部arr[][n],内部n){ int sum_1=0; int sum_2=0; for(int a_i=0;a_i这不是标准C++。如果你问的是GNU-C++ 98的特定方言,请告诉我们。在任何情况下,C++中都有比C样式数组更好的工具。对初学者来说,这是一个很好的解决方案。继续下去。随时!! #include <vector> #include <cmath> #include <cstdio> #include <iostream> #include <algorithm> using namespace std; void abst_diff(int arr[50][50], int n){ int sum_1=0; int sum_2=0; for(int a_i = 0; a_i < n; a_i++) sum_1 = sum_1 + arr[a_i][a_i]; for(int a_i = 0, a_j = n-1; a_i < n; a_i++, a_j--) sum_2 = sum_2 + arr[a_i][a_j]; sum_2=abs(sum_2-sum_1); cout << sum_2; } int main(){ int n; cin >> n; int arr[50][50]; for(int a_i = 0;a_i < n;a_i++){ for(int a_j = 0;a_j < n;a_j++){ cin >> arr[a_i][a_j]; } } abst_diff(arr,n); return 0; } #include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> #include <cstring> using namespace std; int **createArr(int **array, int n){ array = new int*[n]; for (int row=0; row<n; row++) { array[row] = new int[n]; } return array; } void abst_diff(int **arr,int n){ int sum_1=0; int sum_2=0; for(int a_i = 0; a_i < n; a_i++) sum_1 = sum_1 + *(*(arr+a_i)+a_i);//arr[a_i][a_i]; for(int a_i = 0, a_j = n-1; a_i < n; a_i++, a_j--) sum_2 = sum_2 + arr[a_i][a_j]; sum_2=abs(sum_2-sum_1); cout << sum_2; } int main(){ int n; cin >> n; int **arr=createArr(arr,n); for(int a_i = 0;a_i < n;a_i++){ for(int a_j = 0;a_j < n;a_j++){ cin >> arr[a_i][a_j]; } } abst_diff(arr,n); return 0; }

将2D数组传递给C++;给我以下的错误 #包括 #包括 #包括 #包括 #包括 使用名称空间std; \\错误: \\“n”未在此作用域中声明 \\在“,”标记之前应为“)” \\“int”之前应为非限定id 无效Abs_diff(内部arr[][n],内部n){ int sum_1=0; int sum_2=0; for(int a_i=0;a_i这不是标准C++。如果你问的是GNU-C++ 98的特定方言,请告诉我们。在任何情况下,C++中都有比C样式数组更好的工具。对初学者来说,这是一个很好的解决方案。继续下去。随时!! #include <vector> #include <cmath> #include <cstdio> #include <iostream> #include <algorithm> using namespace std; void abst_diff(int arr[50][50], int n){ int sum_1=0; int sum_2=0; for(int a_i = 0; a_i < n; a_i++) sum_1 = sum_1 + arr[a_i][a_i]; for(int a_i = 0, a_j = n-1; a_i < n; a_i++, a_j--) sum_2 = sum_2 + arr[a_i][a_j]; sum_2=abs(sum_2-sum_1); cout << sum_2; } int main(){ int n; cin >> n; int arr[50][50]; for(int a_i = 0;a_i < n;a_i++){ for(int a_j = 0;a_j < n;a_j++){ cin >> arr[a_i][a_j]; } } abst_diff(arr,n); return 0; } #include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> #include <cstring> using namespace std; int **createArr(int **array, int n){ array = new int*[n]; for (int row=0; row<n; row++) { array[row] = new int[n]; } return array; } void abst_diff(int **arr,int n){ int sum_1=0; int sum_2=0; for(int a_i = 0; a_i < n; a_i++) sum_1 = sum_1 + *(*(arr+a_i)+a_i);//arr[a_i][a_i]; for(int a_i = 0, a_j = n-1; a_i < n; a_i++, a_j--) sum_2 = sum_2 + arr[a_i][a_j]; sum_2=abs(sum_2-sum_1); cout << sum_2; } int main(){ int n; cin >> n; int **arr=createArr(arr,n); for(int a_i = 0;a_i < n;a_i++){ for(int a_j = 0;a_j < n;a_j++){ cin >> arr[a_i][a_j]; } } abst_diff(arr,n); return 0; },c++,C++,有人能帮我找出这段代码中的错误吗。这是一个相当简单的逻辑。我得到的错误是针对该行的: void abs_diff(int-arr[][n],int-n){不能指定变量来定义数组的大小。可能是可以使用宏 #include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std; \\E

有人能帮我找出这段代码中的错误吗。这是一个相当简单的逻辑。我得到的错误是针对该行的:
void abs_diff(int-arr[][n],int-n){

不能指定变量来定义数组的大小。可能是可以使用

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

\\Errors:
\\'n' was not declared in this scope
\\ expected ')' before ',' token
\\ expected unqualified-id before 'int'
void abst_diff(int arr[][n], int n){
int sum_1=0;
int sum_2=0;

for(int a_i = 0; a_i < n; a_i++)
    sum_1 = sum_1 + a[a_i][a_i];

for(int a_i = 0, a_j = n-1; a_i < n; a_i++, a_j--)
    sum_2 = sum_2 + a[a_i][a_j];

sum_2=abs(sum_2-sum_1);
cout << sum_2;

}

int main(){
int n;
cin >> n;
int arr[n][n];
for(int a_i = 0;a_i < n;a_i++){
   for(int a_j = 0;a_j < n;a_j++){
      cin >> arr[a_i][a_j];
   }
}
abst_diff(arr,n);
return 0;
}
或者您可以使用动态变量Ex:

#define SIZE 50
你不能在这里也给出尺寸

void abst_diff(int arr[][**n**], int n)
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
无效摘要差异(内部arr[50][50],内部n){
int sum_1=0;
int sum_2=0;
for(int a_i=0;a_in;
国际航空公司[50][50];
for(int a_i=0;a_i>arr[a_i][a_j];
}
}
Abs_diff(arr,n);
返回0;
}

请使用“/”而不是“\”。

我实际上是想传递一个动态变量(即数组),而不是一个固定大小的已定义变量

我接受了你的第一个建议,并设法提出了自己的解决方案:

#include <vector>
#include <cmath>
#include <cstdio>
#include <iostream>
#include <algorithm>

using namespace std;


void abst_diff(int arr[50][50], int n){
int sum_1=0;
int sum_2=0;

for(int a_i = 0; a_i < n; a_i++)
    sum_1 = sum_1 + arr[a_i][a_i];

for(int a_i = 0, a_j = n-1; a_i < n; a_i++, a_j--)
    sum_2 = sum_2 + arr[a_i][a_j];

sum_2=abs(sum_2-sum_1);
cout << sum_2;

}

int main(){
int n;
cin >> n;
int arr[50][50];
for(int a_i = 0;a_i < n;a_i++){
   for(int a_j = 0;a_j < n;a_j++){
      cin >> arr[a_i][a_j];
   }
}
abst_diff(arr,n);
return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int**createArr(int**数组,int n){
数组=新整数*[n];
对于(int行=0;n行;
int**arr=createArr(arr,n);
for(int a_i=0;a_i>arr[a_i][a_j];
}
}
Abs_diff(arr,n);
返回0;
}
这个程序计算对角线之和之间的绝对值差。我的问题只是将一个动态变量传递给一个函数

谢谢你的帮助!:)


P'`'是一个诚实的错误。<>代码> INTAR[n] [n];< /Cord>这不是标准C++。如果你问的是GNU-C++ 98的特定方言,请告诉我们。在任何情况下,C++中都有比C样式数组更好的工具。对初学者来说,这是一个很好的解决方案。继续下去。随时!!

#include <vector>
#include <cmath>
#include <cstdio>
#include <iostream>
#include <algorithm>

using namespace std;


void abst_diff(int arr[50][50], int n){
int sum_1=0;
int sum_2=0;

for(int a_i = 0; a_i < n; a_i++)
    sum_1 = sum_1 + arr[a_i][a_i];

for(int a_i = 0, a_j = n-1; a_i < n; a_i++, a_j--)
    sum_2 = sum_2 + arr[a_i][a_j];

sum_2=abs(sum_2-sum_1);
cout << sum_2;

}

int main(){
int n;
cin >> n;
int arr[50][50];
for(int a_i = 0;a_i < n;a_i++){
   for(int a_j = 0;a_j < n;a_j++){
      cin >> arr[a_i][a_j];
   }
}
abst_diff(arr,n);
return 0;
}
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

int **createArr(int **array, int n){

array = new int*[n];
for (int row=0; row<n; row++) {
    array[row] = new int[n];
}
return array;

}

void abst_diff(int **arr,int n){
int sum_1=0;
int sum_2=0;

for(int a_i = 0; a_i < n; a_i++)
    sum_1 = sum_1 + *(*(arr+a_i)+a_i);//arr[a_i][a_i];

for(int a_i = 0, a_j = n-1; a_i < n; a_i++, a_j--)
    sum_2 = sum_2 + arr[a_i][a_j];

sum_2=abs(sum_2-sum_1);
cout << sum_2;

}

int main(){
int n;
cin >> n;
int **arr=createArr(arr,n);
for(int a_i = 0;a_i < n;a_i++){
   for(int a_j = 0;a_j < n;a_j++){
      cin >> arr[a_i][a_j];
   }
}
abst_diff(arr,n);
return 0;
}