• 7.使用中位数而不是平均值。


    如果我们要用中位数来确定课后成绩。

    第一:我们需要存储所有的课后成绩,而不是跟计算平均值一样,只存储总成绩。

    第二:我们需要对成绩排序。找到中位数。

    要计算中位数,我们必须阅读并存储所有的课后作业分数,然后进行排序,最后选择中间(或两个)。 为了方便而有效地进行这种计算,我们需要一种方法:

    1)我们需要储存所有的值,但是我们不知道有多少值。

    2)高效的取得中间值。

    标准模板库提供了一种类型:vector,能轻松解决所有问题。

    #include <iostream>
    #include <string>
    #include <iomanip>
    #include <vector>
    #include <algorithm>
    
    
    
    using namespace std;
    
    
    int main()
    {
        string name;
        cout << "What's your name: ";
        cin >> name;
        cout << "Hello, " << name << "!" << endl;
    
        double finalGrade, middleGrade;
        cout << "Please enter your midterm and final exam grades: ";
        cin >> middleGrade >> finalGrade;
    
        vector<double> homework;
        cout << "Enter all your homework grades, followed by end-of-file:";
        double x;
        while(cin >> x) {
            homework.push_back(x);
        }
    
        if(homework.size() == 0)
        {
            cout << "No homework, try again!" << endl;
            return 1;
        }
    
        sort(homework.begin(), homework.end());
    
        double median;
        int size = homework.size();
        int mid = size / 2;
        median = (size % 2 == 0 ? (homework[mid]+homework[mid-1]) / 2 : homework[mid]);
    
        streamsize prec = cout.precision();
        cout << "Your final grade is " << setprecision(3)
             << 0.2 * middleGrade + 0.4 * finalGrade + 0.4 * median
             << setprecision(prec) << endl;
    
          
        system("pause");
        return 0;
    }

    1.vector是一种容器类,重载了[]操作符,[]操作符可以直接获取vector对应位置的值,就像数组一样。

    2.sort是algorithm头文件的函数,适用于各种容器,用来排序。

  • 相关阅读:
    容器常用命令
    镜像常用命令
    Docker安装
    Jenkins部署
    IIS配置伪静态 集成模式 样式丢失
    centos7 apache 配置ssl
    centOS7 关闭swap
    Presto集群部署和配置
    HDFS中将普通用户增加到超级用户组supergroup
    superset在 centos 7安装运行
  • 原文地址:https://www.cnblogs.com/billxyd/p/7029513.html
Copyright © 2020-2023  润新知