qq_44884197 2019-05-04 14:16 采纳率: 66.7%
浏览 2153
已采纳

求每位学生的平均成绩

#include<stdio.h>
float avers[2],score[2][5];
int main()
{
    float avers(float array[2][5]);
    float score[2][5];
    int i,j;
    for(i=0;i<2;i++)
        for(j=0;j<5;j++)
            scanf("%f",&score[i][j]);
    avers[2]=avers(score[2][5])
    for(i=0;i<2;i++)
        printf("%f",avers[2]);
}
float avers(float array[2][5]);
{
    int i,j;
    float s;
    for(i=0;i<2;i++)
    {
        for(j=0;j<5;j++)
            s=s+array[i][j];
        avers[i]=s/5.0;
    }
    return avers[2];
}

求助大神给看看这段代码有什么问题,要求用到函数

  • 写回答

2条回答 默认 最新

  • BuXianShan 2019-05-04 15:01
    关注

    附加:float()是把括号里的数据强制转化为float型,在你的编译器里也许可以去掉float。
    附加:score是个二维数组,score【i】就是个一维数组,他有五个元素。它就代表一个学生的五个分数的数组。
    附加:手机不能回答评论,只能在这里编辑。给函数的参数是一个学生的五个分数,函数求出平均值。所以形参是一个长度为5的数组。
    你应该是初学者吧。用函数的目的是为了代码复用,只需要给不同的实参。
    比如求平均成绩,函数最好设计为调用一次可以求一个人的平均成绩,返回值就是一个数就行啦。
    有两个人,只需要调用两次函数。而你写的函数传入的参数和返回值都很混乱。我对你的代码做了一些更改,如有问题可以再问我。
    希望可以帮到你。

    #include<stdio.h>
    int main()
    {
        float avers(float array[5]);
        float score[2][5];
        int i, j;
        for (i = 0; i<2; i++)
            for (j = 0; j<5; j++)
                scanf("%f", &score[i][j]);
        for (i = 0; i < 2; i++) {
            printf("平均成绩:%f\n", avers(score[i]));
        }
    
    }
    
    float avers(float array[5])
    {
        int i;
        float s = 0;
        for (i = 0; i < 5; i++)
        {
            s = float(s + array[i]);
        }
        s = float(s / 5.0);
        return s;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名