【发布时间】:2015-04-13 04:26:30
【问题描述】:
我想使用函数返回具有不同数组的二维数组的平均值,程序运行良好,但它返回一个很大的负数,我如何返回数组或将指针应用到我的函数?我在哪里添加指针以使其工作?
我遇到了这个:
警告:传递 'returnAvg' 的参数 1 使指针从没有强制转换的整数 [默认启用]|
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void returnAvg(int allTest[2][2],int students,int test);
int main ()
{
int students = 2, test = 2, i,j;
int allTest[students][test];
for(i=0;i<students;i++){
for(j=0;j<test;j++){
printf("Student [%d] test [%d] score was> ",i+1,j+1);
scanf("%d",&allTest[i][j]);
}
}
returnAvg(allTest[2][2],students,test);
return 0;
}
void returnAvg(int allTest[2][2],int students,int test){
int i,j;
int avg[students];
for(i=0;i<students;i++){
int sum = 0;
for(j=0;j<test;j++){
sum += (allTest[i][j]);
}
avg[i] = sum/test;
}
printf("the average is %d, %d", avg[0],avg[1]);
return;
}
【问题讨论】:
-
avg 应该是
returnAvg的参数 -
好的,我明白了,但是为什么它需要在函数参数中?而不是在大括号内。
-
returnAvg(allTest[2][2],students,test)中不应包含[2][2]。returnAvg(allTest,students,test)是正确的方法,你没有在这里定义 allTest 的大小。
标签: c compiler-errors