C++ 将2D数组传递给函数而不使用向量
我正在编写一个程序,以2D数组的形式打印用户输入的方阵元素的总和,而不使用矢量。但是,我有两个错误:C++ 将2D数组传递给函数而不使用向量,c++,multidimensional-array,C++,Multidimensional Array,我正在编写一个程序,以2D数组的形式打印用户输入的方阵元素的总和,而不使用矢量。但是,我有两个错误: 错误1:错误:数组的元素类型“int[]”不完整。 错误2: 错误:预期的表达式无法使用; 国际航空公司[n][n]; 对于(int i=0;iarr[i][j]; } } cout在函数参数(错误1)中,您需要至少指定数组的最后一个维度: int sumarr(int arr[][SIZE]){ /*...*/} 在对函数的调用中,您只需要使用数组名,无需取消引用(错误2): //既然s
- 错误1:
错误:数组的元素类型“int[]”不完整。
- 错误2:
错误:预期的表达式无法使用; 国际航空公司[n][n]; 对于(int i=0;i
>arr[i][j]; } } cout在函数参数(错误1)中,您需要至少指定数组的最后一个维度:
在对函数的调用中,您只需要使用数组名,无需取消引用(错误2):int sumarr(int arr[][SIZE]){ /*...*/}
//既然sizeof arr无法工作,您应该将大小作为参数传递 内部苏马尔(内部**arr,内部n) { 断言(n>0&&n<1000);//确认n是有效的,>0和合适的上限 整数和=0; for(int i=0;i
>arr[i][j]; 总和+=arr[i][j]; } } 回报金额; } intmain() { int n;//方阵的行(或列)数 标准:cin>>n; //二维阵列的内存分配 整数**arr=新整数*[n]; 对于(int i=0;i
int main() { int n; // No. of rows(or coloumns) of the square matrix cin >> n; int arr[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) // inputting array elements { cin >> arr[i][j]; } } cout << sumarr(arr[][]); // ERROR 2 return 0; }
int sumarr(int arr[][SIZE]){ /*...*/}
cout << sumarr(arr);
#include <iostream> #include <cassert>
// since sizeof arr can't work you should pass the size as argument int sumarr(int **arr, int n) { assert(n > 0 && n < 1000); // confirm that n is valid, > 0 and a suitable upper limit int sum = 0; for (int i = 0; i < n; i++) //calculating sum of elements { for (int j = 0; j < n; j++) { // input and sum in the same loop will save you a O(N^2) operation std::cin >> arr[i][j]; sum += arr[i][j]; } } return sum; }
int main() { int n; //No. of rows(or columns) of the square matrix std::cin >> n; // memory allocation for 2D array int **arr = new int *[n]; for (int i = 0; i < n; i++) { arr[i] = new int[n]; } //end int sum = sumarr(arr, n); // passing array and size std::cout << "Sum: " << sum; // freeing memory after use for (int i = 0; i < n; i++) { delete [] arr[i]; } delete [] arr; //end }