6-4 统计比均分高的人数及成绩

把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过函数值返回。

函数接口定义:

int h_avg(int a[],int n,int b[]);

n 的值是a中的元素个数; b 中存储高于均分的成绩,高于均分的人数通过函数返回。

裁判测试程序样例:

#include <stdio.h>
#define N 10

int h_avg(int a[],int n,int b[]);

int main()
{
    int n,i,x[N],k,y[N];
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&x[i]);
    k=h_avg(x,n,y);
    for(i=0;i<k;i++)
        printf("%d ",y[i]);
    return 0;
}

/* 请在这里填写答案 */

输入样例:

5
1 2 3 4 5

输出样例:

3 4 5

 思路:本题要求我们将高于平均成绩的同学成绩存入另外一个数组中,然后返回,那么这时我们就要计算平均值,计算高于均值学生个数,然后因为是使用调用函数的方式,所以这里要用指针的方式来存储,最后返回学生个数就可以了,实现代码如下

int h_avg(int a[], int n, int b[])
{
    int i,j=0;
    
    float k = 0;//定义为float型变量是因为考虑到均值可能为小数的情况
    for (i = 0; i < n; i++)//这里构造一个循环计算均值
    {
        k = k + a[i];
    }
    k = k / n;
    for (i = 0; i < n; i++)
    {
        if (a[i] >= k)
        {
            *b = a[i];//此处直接课使用*b,不需要额外定义一个指针
            b = b + 1;//改变b的地址实现存入数据
            j = j + 1;//定义一个变量j用来存储b中变量个数
        }
    }
    return j;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏~辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值