特级茶叶 2022-11-20 18:45 采纳率: 78.6%
浏览 3
已结题

用C++编写相关程序10

请编写程序,上机调试,题目如下图,请按题目要求编写,并给出程序

img

  • 写回答

1条回答 默认 最新

  • 关注
    #include<iostream>
    
    using namespace std;
    
    class CalAverage 
    {
    public:
      CalAverage() {}
      ~CalAverage() {}
    
      virtual double Average(double *arr, int len) = 0;
    };
    
    class Gymnastics :public CalAverage
    {
    public:
      Gymnastics() {}
      ~Gymnastics() {}
    
      virtual double Average(double *arr, int len)
      {
        //因为要去掉最大值与最小值,确保len>=3
        if (len <= 2) return 0;
        //记录最大值
        double max = arr[0];
        //记录最小值
        double min = arr[0];
        //计算总和
        double sum = 0;
        for (int i = 0; i < len; i++)
        {
          sum = sum + arr[i];
          if (arr[i] < min) min = arr[i];
          if (arr[i] > max) max = arr[i];
        }
        
        //计算平均值
        sum = (sum - max - min) / (len - 2);
        return sum;
      }
    };
    
    
    class School :public CalAverage
    {
    public:
      School() {}
      ~School() {}
    
      virtual double Average(double *arr, int len)
      {
        double sum = 0;
        for (int i = 0; i < len; i++)
        {
          sum = sum + arr[i];
        }
    
        //计算平均值
        sum = (sum) / len;
        return sum;
      }
    };
    
    int main()
    {
      double arr[5] = { 88,89,90,100,56 };
      CalAverage* cal1 = new Gymnastics();
      CalAverage* cal2 = new School();
      //数组长度
      int len = sizeof(arr) / sizeof(double);
    
      printf("去除最大值与最小值的平均分:%f\n", cal1->Average(arr, len));
      printf("不去除最大值与最小值的平均分:%f\n", cal2->Average(arr, len));
    
      return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月28日
  • 已采纳回答 11月20日
  • 创建了问题 11月20日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么