C++ 初始化后仍有错误? #包括 使用名称空间std; 浮点*findAverage(整数arr[][1],整数行,浮点平均值[1]); int main(){ int myArr[1][1]; 对于(int i=0;imyArr[j][i]; } } float*theAverages={0}; 平均值=findAverage(myArr,2,平均值); 返回0; } 浮点*findAverage(整数arr[][1],整数行,浮点平均值[1]){ 对于(int x=0;x

C++ 初始化后仍有错误? #包括 使用名称空间std; 浮点*findAverage(整数arr[][1],整数行,浮点平均值[1]); int main(){ int myArr[1][1]; 对于(int i=0;imyArr[j][i]; } } float*theAverages={0}; 平均值=findAverage(myArr,2,平均值); 返回0; } 浮点*findAverage(整数arr[][1],整数行,浮点平均值[1]){ 对于(int x=0;x,c++,initialization,C++,Initialization,是一个1行1列2d数组,但您正在将其用作2行2列2d数组。您需要将其更改为int myArr[2][2];。请记住数组索引从0开始,但数组大小从1开始 第二个问题是你从不分配平均数。你应该改变 int myArr[1][1]; 到 你也应该 float theAverages[] = {0f, 0f}; 一个void函数,因为您已经将输出放入平均值中了。因此它应该是 float* findAverage(int arr[][1], int rows, float averages[1]);

是一个1行1列2d数组,但您正在将其用作2行2列2d数组。您需要将其更改为
int myArr[2][2];
。请记住数组索引从0开始,但数组大小从1开始

第二个问题是你从不分配平均数。你应该改变

int myArr[1][1];

你也应该

float theAverages[] = {0f, 0f};
一个
void
函数,因为您已经将输出放入
平均值中了。因此它应该是

float* findAverage(int arr[][1], int rows, float averages[1]);
您还需要去掉函数末尾的
返回0;
,然后才能更改

void findAverage(int arr[][2], int rows, float averages[2]);


int-myArr[1][1];
应该是
int-myArr[2][2];
我只取了两行的平均值。@mch在将平均值[0]设置为0后,打印平均值[0]时仍然会出错,然后它需要是
int-myArr[2][2];
。索引是基于0的,但维度不是。@mch我添加了这个区别,但我仍然会出错:(
void findAverage(int arr[][2], int rows, float averages[2]);
theAverages = findAverage(myArr, 2, theAverages);
findAverage(myArr, 2, theAverages);