编程论坛
注册
登录
编程论坛
→
C++教室
大佬们,这道题咋解啊
说句实话
发布于 2018-12-20 19:58, 1848 次点击
文件score.txt中有某班级40人的成绩,将文件中的成绩读取出来。
(1)对成绩进行排序,以5个一行在屏幕上输出。
(2)计算该班成绩的均方差:(最大值-最小值)/平均值 。
3 回复
#2
billlgd
2018-12-21 10:44
作业要自己做
#3
xiahouxiaoxu
2018-12-21 19:57
#4
rohalloway
2018-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