南柯67 2023-12-14 20:24 采纳率: 62.5%
浏览 5
已结题

第三题哪里出问题了,怎么弄不出来

img

img


求解第三题,需要用函数,感觉自己好像没什么错误,但就是弄不出来

  • 写回答

1条回答 默认 最新

  • 爱学习的小茗 2023-12-14 21:25
    关注

    嗯,有点小问题哈。在你的avg函数里,n应该是表示传入的数组长度的,但是你又打算用它来统计偶数的数量,这样就有问题了哈。你可以试试把"统计偶数数量"的变量,换一个名字,比如m,应该就没问题了哈,不要修改传入的n的值。如果还是不行的话,可以再来找我讨论哈

    更新1,你看这样符合你的要求嘛

    #include <stdio.h>
    #include <stdlib.h>
    const int N = 100; //数组长度
    const int M = 1000000; // 随机数的最大值,用于取模
    int main(){
        int a[N];
        for(int i = 0; i < N; i++){
            a[i] = rand() % M; //随机初始化数组a
        }
        double esum = 0.0; //偶数之和,初始为0
        int ecnt = 0; //偶数的数目,初始为0
        for(int i = 0; i < N; i++){
            if(a[i] % 2 == 0) { // 如果是偶数
                 ecnt++;  // 偶数数目+1
                 esum += a[i]; // 偶数的和累加
             }
        }
        if(ecnt > 0){ // 如果偶数数目不是0,则取平均值,否则不用计算平均值,因为初始就是0
              esum = esum / ecnt;
        }
        printf("%.10f\n", esum);
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 创建了问题 12月14日