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;
    }

  • 相关阅读:
    878. 第 N 个神奇数字
    Leetcode 239. 滑动窗口最大值
    欢天喜地七仙女——Beta冲刺三
    欢天喜地七仙女——Beta冲刺二
    欢天喜地七仙女——Beta冲刺一
    欢天喜地七仙女——Beta冲刺凡事预则立
    欢天喜地七仙女——Beta冲刺代码规范与计划
    欢天喜地七仙女Alpha总结展望——前事不忘后事之师
    欢天喜地七仙女——Alpha测试随笔
    欢天喜地七仙女——Alpha冲刺总结
  • 原文地址:https://www.cnblogs.com/whcsrj/p/13585737.html
Copyright © 2011-2022 走看看