gpt4 book ai didi

c++ - 将二维数组传递给 C++ 中的函数会出现以下错误

转载 作者:行者123 更新时间:2023-11-30 03:42:45 25 4
gpt4 key购买 nike

#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;
}

谁能帮我找出这段代码中的错误。这是一个相当简单的逻辑。我得到的错误是关于这条线的: void abst_diff(int arr[][n], int n){

最佳答案

您不能分配变量来定义数组的大小。也许您可以使用

#define SIZE 50

或者您可以使用动态变量例如:

#include<iostream>

using namespace std;

int main()
{
int n ,*a;
cout<<"Enter size of array= ";
cin>>n;
a=new int[n]; //allocate memory
for(int i=0;i<n;i++)
*(a+i)=i;
for(int i=0;i<n;i++)
cout<<*(a+i)<<endl;
return 0;
}

void abst_diff(int arr[][**n**], int n)

你也不能在这里给出尺寸。

#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;
}

请使用“/”而不是“\”发表评论。

关于c++ - 将二维数组传递给 C++ 中的函数会出现以下错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36666129/

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