请编写程序,上机调试,题目如下图,请按题目要求编写,并给出程序
1条回答 默认 最新
- 希望早日退休的程序猿 2022-11-20 19:28关注
#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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥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的速度时间图像)我想问线路信息是什么