Vector求期末成绩

#include<iostream>
#include <string>
#include <stdexcept>
#include <iomanip>
#include <algorithm>
#include <vector>
using namespace std;

//求排序后家庭作业成绩中的中间成绩
double median(vector<double> vec)
{
	typedef vector<double>::size_type vec_size;
	vec_size size = vec.size();
	if (size == 0)
		throw domain_error("没有做一门家庭作业!---在求中间值函数中");
	sort(vec.begin(),vec.end());
	vec_size mid = size / 2;

	return size % 2 == 0 ? (vec[mid - 1] + vec[mid]) / 2 : vec[mid];
}

//期末成绩
double grade(double midterm, double final, double homework)

{
	return 0.2 * midterm + 0.4 * final + 0.4 * homework;
}

//期末成绩
double grade(double midterm, double final, const vector<double>& homework)

{
	if( homework.size() == 0)
		throw domain_error("没有做过一门家庭作业!");

	return grade(midterm, final, median(homework));
}

//读取家庭作业成绩
istream& read_hw(istream& in,vector<double>& hw
{
	if(in)
	{
		hw.clear();
		double x;
		while (in>>x)
			hw.push_back(x);
		in.clear();
	}

	return in;
}

int main()
{
	cout<<"请输入您的姓名:";
	string name;
	cin>>name;

	double midterm, final;
	cout<<"请输入期中、期末成绩:";
	cin>>midterm>>final;

	cout<<"请输入家庭作业成绩用EOF结束:";
	vector<double> homework;
	read_hw(cin,homework);

	try
	{
		double final_grade = grade(midterm, final, homework);
		streamsize prec = cout.precision();
		cout<<"你最终的期末成绩:"<<setprecision(5)<<final_grade<<setprecision(prec)<<endl;
	}
	catch(domain_error)
	{
		cout<<"你必须输入你的家庭作业成绩!"<<endl;
	}

	return 0;
}

Vector求期末成绩

时间: 2024-10-31 06:57:25

Vector求期末成绩的相关文章

hdu 2023 求平均成绩 (java)

问题: 在计算列和时,没有将i j调换,导致输出错误的结果: for(int i=0;i<m;i++) { for(int j=0;j<n;j++) g[i]+=a[j][i];//错误:g[i]+=a[i][j]; g[i]=g[i]/n; 此外,定义了三个double型数组导致超出内存,实际上二维数组只需要用int型: 最后输出时没有注意要预留一个空行: 如果在同一级出现相同的for循环,要看能否组合成一个循环: 求平均成绩 Time Limit: 2000/1000 MS (Java/O

hdoj 2023 求平均成绩

求平均成绩 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 74055    Accepted Submission(s): 17809 Problem Description 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量. Input

求平均成绩(杭电2023)(确实很水很繁琐)

求平均成绩 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 66221    Accepted Submission(s): 15805 Problem Description 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量. Input

求平均成绩

Problem B: 求平均成绩 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 43  Solved: 6 [Submit][Status][Web Board] [Edit] [TestData] Description 班上有学生若干名,已知每名学生的成绩(整数),求班上全部学生的平均成绩.保留到小数点后两位.同一时候输出该平均成绩整数部分四舍五入后的数值. 第一行有一个整数n(1<= n <= 100),表示学生的人数.其后n行每行有1个

求平均成绩 【杭电-HDOJ-2023】 附题+详解

/* 求平均成绩 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 62086    Accepted Submission(s): 14888 Problem Description 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量. In

【C++】判断元素是否在vector中,对vector去重,两个vector求交集、并集

#include <iostream> #include <vector> #include <algorithm> //sort函数.交并补函数 #include <iterator> //求交并补使用到的迭代器 using namespace std; //打印容器vector void print_vector(vector<int> v){ if(v.size()>0){ cout<<"{"; for

应用深度神经网络预测学生期末成绩

0.引言 写作目的:只是为了学习一下DNN的用法 基本思路: 首先,将学生成绩(平时成绩x.期末成绩y:csv格式)装载: 接着,将成绩数据标准化.(PS:虽然这里的成绩已经[0~100]之间了,本文是为了学习DNN,故不省略这一步) 接着,将平时成绩x,期末成绩y进一步拆分(按比例,如20%)为训练数据和测试数据.PS:测试数据用来检验训练出的模型性能 接着,创建DNN模型.依次设置一系列的参数. 接着,训练模型(fit函数).model1.fit(x_train, y_train) 接着,评

HDU2023求平均成绩 - biaobiao88

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2023 求平均成绩 Problem Description 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量. Input 输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数.然后是n行数据,每行包括m个整数(即:考试分数). Output 对于每个测试实例,输出3行数

杭电2023 求平均成绩(及一些易见的错误)

链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2023 首先,想说下,这题对我来说可能是一个阴影.因为在自己学校的程序竞赛中,这是第二题,当时自己没ac,结果那叫一个自卑啊!然后今天a题目的时候那种恐惧感又来了,很影响情绪.然后,自己现在完全通过自己的努力,但也用了起码3小时的纠错时间,将代码ac了.附上ac代码: #include <iostream> #include<math.h> #include <iomani