c语言程序出错。。求大神帮忙。。

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

请问为什么会出现这种问题??

请求各路大神回答!

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(arr,R); 和void print(arr,R); 要取消掉void


在函数void scanarr(double ar1[][C],int r)定义中

因为变量arr是double类型

scanf("%f",&ar1[i][j]);     // 错误的        
scanf("%lf",&ar1[i][j]);    // 注意是L,不是1


还有函数取平均值,声明s的时候应该赋值为0.,否则会出错,总之错误太多了,自己好好翻翻书吧。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-02-13
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));//多了double
相似回答
大家正在搜