zoukankan      html  css  js  c++  java
  • 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头文件的函数,适用于各种容器,用来排序。

  • 相关阅读:
    3-附1 ->和*的区别
    第2章 变量和基本类型
    第2章 变量和基本类型 附3---底层const和顶层const
    第2章 变量和基本类型 附2 --声明和定义的区别
    第2章 变量和基本类型 附1---变量和对象的区别
    第一章 开始
    1. 数据采集基础问题
    跟波利亚学解题---1
    [PTA]L2-001 紧急救援 (25 分)
    [图论]最短路计数(spfa)
  • 原文地址:https://www.cnblogs.com/billxyd/p/7029513.html
Copyright © 2011-2022 走看看