zoukankan      html  css  js  c++  java
  • 20200830--白细胞计算(奥赛一本通P84 13)

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

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

        输入:第1行是一下正整数n(),表明共有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 <cstdio> //std io
    #include <iostream>
    #include <iomanip>
    #include <cmath>
    using namespace std;
    int n;//样本数
    int v,k;//要去掉的一个最大值和一个最小值
    double max1,min1=10000;
    double m[300];
    double pjz;//平均值
    double box;
    double wcz=0;
    double l;//误差最大值
    int main()
    {
      cout<<"输入样本个数:"<<endl;
      cin>>n;
      for(int i=0;i<n;i++)
        {cin>>m[i];}
          //下一步求最大值和最小值,分别存到v k里
         for(int i=0;i<n;i++)
           {
              box+=m[i];
              if(m[i]>max1)
               {
                 max1=m[i];
                 v=i;
               }
             if(m[i]<min1)
              {
                min1=m[i];
                k=i;
              }
          }
         //求平均值
        pjz=(box-m[v]-m[k])/(n-2);
        //cout<<"平均值为:"<<fixed<<setprecision(2)<<pjz<<endl;

        printf("平均值为%.2lf ",pjz);
        for(int i=0;i<n;i++)
         {
           if (abs(m[i]-pjz)>l&&i!=k&&i!=v)
            {
               l=abs(m[i]-pjz);
            }
        }
        cout<<"误差值最大:"<<l<<endl;
        return 0;
    }

  • 相关阅读:
    Spring的IOC容器学习笔记
    全球疫情可视化展示
    GitHub-暂存区与版本回退
    GitHub-创建仓库与本地同步
    Shell脚本常用模板
    Shell按行读取文件的3种方法
    shell脚本:通过域名获取证书的过期时间
    如何禁止chrome浏览器http自动转成https 【转】
    kafka_2.11-2.0.0_常用操作
    kafka_2.11-2.0.0_安装部署
  • 原文地址:https://www.cnblogs.com/whcsrj/p/13585737.html
Copyright © 2011-2022 走看看