IcarusCPU 2023-04-20 11:34 采纳率: 71.4%
浏览 28
已结题

C,初学者函数调用,请求指出问题

#输入5 个学生的数学、语文、英语 3 门课程的成绩,计算并输出每一门课程的平均成绩和每一位学生的平均成绩。
#初学函数调用,请求指出代码中的问题,或者发布正确代码,谢谢

#include<stdio.h>
#define M  5
#define N  3

float RAver(float score[M][N]);
float CAver(float score[M][N]);
int main()
{
    int score[M][N],i,n;
    printf("每个学生的平均分:\n");
    float RAver(float score[M][N]);
    float CAver(float score[M][N]);
    return 0;    
}

float RAver(float score[M][N])
{
    int score[][N],i,n;
    float aver1=0;
    for(i=0;i<M;i++)
    for(n=0,aver1=0;n<N;n++)
    {
        scanf("%d",&score[i][n]);
        aver1 += score[i][n] / 3.;
        printf("%d\t", score[i][n]);
    }
        printf("%.1f\n", aver1);
}


float CAver(float score[M][N])
{    
    float b1,b2,b3;
    for(int i=0;i<M;i++)
    {   for(float n=0,c=0;n<N;n++)
    for (i = 0; i < M; i++)
    {
            b1 += score[i][0] ;
            b2 += score[i][1] ;
            b3 += score[i][2] ;
    }
    printf("每门课的平均分:\n");
    printf("%2.1f\t%2.1f\t%2.1f\t", b1/5., b2/5., b3/5.);

    }
}


  • 写回答

3条回答 默认 最新

  • 乘风xs 2023-04-20 12:02
    关注

    你的代码中

    float RAver(float score[M][N])
    {
        int score[][N],i,n;
    

    这里在参数中有score,然后又在函数体定义了score,属于重复声明。其他没细看,帮你重写了份
    代码和运行结果如下,望采纳

    #include <stdio.h>
    
    // 函数声明
    float calculateAverage(float arr[], int size);
    
    int main() {
        // 输入学生成绩
        float math[5], chinese[5], english[5];
        for (int i = 0; i < 5; i++) {
            printf("请输入第%d个学生的成绩:\n", i+1);
            scanf("%f%f%f", &math[i], &chinese[i], &english[i]);
        }
    
        // 计算每一门课程的平均成绩
        float avgMath = calculateAverage(math, 5);
        float avgChinese = calculateAverage(chinese, 5);
        float avgEnglish = calculateAverage(english, 5);
    
        // 计算每一位学生的平均成绩并输出
        for (int i = 0; i < 5; i++) {
            float avgStudent = (math[i] + chinese[i] + english[i]) / 3;
            printf("第%d个学生的平均成绩为%.2f\n", i+1, avgStudent);
        }
    
        // 输出每一门课程的平均成绩
        printf("数学的平均成绩为%.2f\n", avgMath);
        printf("语文的平均成绩为%.2f\n", avgChinese);
        printf("英语的平均成绩为%.2f\n", avgEnglish);
    
        return 0;
    }
    
    // 计算数组中元素的平均值
    float calculateAverage(float arr[], int size) {
        float sum = 0;
        for (int i = 0; i < size; i++) {
            sum += arr[i];
        }
        return sum / size;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 已采纳回答 4月24日
  • 创建了问题 4月20日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改