visualc++6.0代码报错

visualc++6.0代码报错,前面用的是double型,但不知道为啥会报错,请大家帮忙看一下


#include<stdio.h>
int i,j;
int main()
{  
    void sa(double);
    void ca(double);
    void hs(double);
    void vs(double);
    double s[10][5];
    for(i=0;i<10;i++)            //10
        for(j=0;j<5;j++)
            scanf("%lf ",&s[i][j]);
        sa(s);
        ca(s);
        hs(s);
        vs(s);
return 0;
}

void sa(double s[10][5])                    //学生平均分
{

    for(i=0;i<10;i++)
    {                 
        double sum=0;//20
        for(j=0;j<5;j++)
        {
            sum+=s[i][j];
        }
        printf("第%d个学生平均分%lf\n",i+1,sum/5);
    }

}

                                                          //30
void ca(double s[10][5])           //课程平均分
{
    double sum=0;
for(j=0;j<5;i++)
    {
    double sum=0;
        for(i=0;i<10;j++)
        {
            sum+=s[i][j];
        }
        printf("第%d个课平均分%lf\n",j+1,sum/10);  //40
    }

}

void hs(double s[10][5])      //最高分
{
    double h1=0;
        int h2=0,h3=0;
    for(i=0;i<10;i++)
    {                                  //50
        for(j=0;j<5;j++)
        {
            if(s[i][j]>h1)
            {
                h1=s[i][j];
                h2=i;
                h3=j;
            }
        }
    }                                    //60
    printf("最高分为%lf为第%d个同学第%d门课程\n",h1,h2+1,h3+1);
}



void vs(double s[10][5])
{
    double sum[10]={0},a[10]={0};
    double q=0,m=0;
    for(i=0;i<10;i++)
    {
        for(j=0;j<5;j++)
        {
            sum[i]+=s[i][j];
        }
        a[i]=sum[i]/5;
        q+=a[i]*a[i];
        m+=a[i];
    }
    printf("平均方差为%lf\n",q/10-m*m/100);
}



sa、ca、hs、vs这几个函数,你在main函数中声明的时候,参数类型都是double,但是,调用的时候都是double 类型的二维数组,前后不一致,所以报错。
只需要修改main函数中这四个函数的声明即可,main函数修改如下:

int main()
{  
    void sa(double a[][5]);
    void ca(double a[][5]);
    void hs(double a[][5]);
    void vs(double a[][5]);
    double s[10][5];
    for(i=0;i<10;i++)            //10
        for(j=0;j<5;j++)
            scanf("%lf ",&s[i][j]);
    sa(s);
    ca(s);
    hs(s);
    vs(s);
    return 0;
}

6-9行声明错误,要跟下面匹配,声明里是double类型,下面实现则是double[][]类型

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632