注册 登录
编程论坛 C++教室

大佬们,这道题咋解啊

说句实话 发布于 2018-12-20 19:58, 1848 次点击
文件score.txt中有某班级40人的成绩,将文件中的成绩读取出来。
(1)对成绩进行排序,以5个一行在屏幕上输出。
(2)计算该班成绩的均方差:(最大值-最小值)/平均值 。
3 回复
#2
billlgd2018-12-21 10:44
作业要自己做
#3
xiahouxiaoxu2018-12-21 19:57
#4
rohalloway2018-12-22 22:00
lineNumber就是40,没有写死,文件路径需改成你自己的
程序代码:

#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

bool readF(vector<int> &vec, int &lineNumber)
{
    int score = 0;
    ifstream infile;   //输入流
    infile.open("C:\\Users\\Ans\\Desktop\\score.txt", ios::in);

    if (!infile.is_open())
        return false;

    while (!infile.eof()) // 未结束一直读
    {
        infile >> score;
        vec.push_back(score);
        lineNumber++;
    }

    infile.close();

    return true;
}

int main()
{
    vector<int> v;
    int lineNumber = 0;
    readF(v, lineNumber);

    sort(v.begin(), v.end());

    int max = 0, min = 0, all = 0;
    for (int i = 0; i < v.size(); i++)
    {
        all += v[i];

        if (v[i] > max)
            max = v[i];

        if (v[i] < min)
            min = v[i];

        cout << v[i] << " ";

        if (!((i+1) % 5))
            cout << endl;
    }

    cout << (max - min) / (all / lineNumber) << endl;

 
    return 0;
}
1