#include<stdio.h>
#define R 3
#define C 5
void scanarr(double ar1[][C],int r);
double avgarr(double ar1[][C],int r);
double avgall(double ar1[][C],int r);
double maxarr(double ar1[][C],int r);
void print(double ar1[][C],int r);
int main(void)
{
double arr[R][C];
printf("Please input an 3x5 array.\n");
void scanarr(arr,R);
void print(arr,R);
return 0;
}
void scanarr(double ar1[][C],int r)//读入一个3x5的浮点型数组
{
int i,j;
for(i=0;i<r;i++){
for(j=0;j<C;j++){
scanf("%f",&ar1[i][j]);
}
}
}
double avgarr(double ar1[][C],int r)//每一行的平均值
{
int j;
double s;
for(j=0;j<C;j++){
s+=ar1[r][j];
}
s/=C;
return s;
}
double avgall(double ar1[][C],int r)//整个数组的平均值
{
int i,j;
double s;
for(i=0;i<r;i++){
for(j=0;j<r;j++){
s+=ar1[i][j];
}
}
s/=r*C;
return s;
}
double maxarr(double ar1[][C],int r)//数组中数值的最大值
{
int i,j;
double m=ar1[0][0];
for(i=0;i<r;i++){
for(j=0;j<C;j++){
if(ar1[i][j]>m)m=ar1[i][j];
}
}
return m;
}
void print(double ar1[][C],int r)//打印结果用
{
int i,j;
for(i=0;i<r;i++){
printf("The avarage of the number %d collection is:\n",i);
printf("%f\n",double avgarr(ar1,i));
}
printf("The avarage of the whole array is:%f\n",double avgall(ar1,R);
printf("The max number in the array is:%f\n",double maxarr(ar1,R);
}
请问为什么会出现这种问题??
请求各路大神回答!
void scanarr(arr,R); 和void print(arr,R); 要取消掉void
在函数void scanarr(double ar1[][C],int r)定义中
因为变量arr是double类型
scanf("%f",&ar1[i][j]); // 错误的还有函数取平均值,声明s的时候应该赋值为0.,否则会出错,总之错误太多了,自己好好翻翻书吧。