T1114 白细胞计数(信息学一本通C++)

目录

历年真题及教学ppt代码视频详解

[题目描述]

    医院采样了某临床病例治疗期间的白细胞数量样本n份,用于分析某种新抗生素对该病例的治疗效果。为了降低分析误差,要先从这n份样本中去除一个数值最大的样本和一个数值最小的样本,然后将剩余n-2个有效样本的平均值作为分析指标。同时,为了观察该抗生素的疗效是否稳定,还要给出该平均值的误差,即所有有效样本(即不包括已扣除的两个样本)与该平均值之差的绝对值的最大值。

    现在请你编写程序,根据提供的n个样本值,计算出该病例的平均白细胞数量和对应的误差。

    [输入]

    输入的第一行是一个正整数n(2 <n≤ 300),表明共有n个样本。

    以下共有n行,每行为一个浮点数,为对应的白细胞数量,其单位为10^9/L。数与数之间以一个空格分开。

    [输出]

    输出为两个浮点数,中间以一个空格分开。分别为平均白细胞数量和对应的误差,单位也是10^9/L。计算结果需保留到小数点后2位。

    [输入样例]

    5

    12.0

    13.0

    11.0

    9.0

    10.0

    [输出样例]

    11.00 1.00


 

   #include<iostream>

    #include<cstdio>

    using namespace std;

    int main()

    {

        double n;

        int flag_max,flag_min;

            int i;   

            double max=-99999,min=99999;

        double a[3001],b[3001],sum=0;

        double average,ave_max=-99999;

       

       

        cin>>n;//输入样本数量n

       

        for(i=1;i<=n;i++)

        {

            cin>>a[i];//输入样本值

            if(a[i]>max)       

            {

                max=a[i];//记录最大值

                flag_max=i;//记录最大值位置

            }

            if(a[i]<min)

            {       

                min=a[i];//记录最小值

                flag_min=i;//记录最小值位置

            }

                sum+=a[i];//计算n个样本白细胞数量之和

        }

        average=1.0*(sum-max-min)/(n-2);//计算平均白细胞数量

       

        for(i=1;i<=n;i++)

        {

            if(i!=flag_max&&i!=flag_min)//不计算已舍去的两个样本

            {

                b[i]=a[i]-average;//记录每个样本与平均数之差的绝对值

                if(b[i]<0)

                    b[i]=-b[i];

            }

            else

                b[i]=-99999;//否则赋值最小,使其不可能为最大值

        }

        for(i=1;i<=n;i++)//找最大的差值

            if(b[i]>ave_max)

                ave_max=b[i];

    

        printf("%.2lf %.2lf\n",average,ave_max);

        return 0;

    }

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值