【HDU4802】GPA C++语法基础题(真是瞎了)

这是一篇关于C++编程解决GPA计算问题的博客。博主分享了对一道题目(HDU4802)的理解,指出题意理解比实际编程更为耗时,并疑惑是否为bestcoder某轮的题目。题目要求根据输入的成绩和等级计算GPA,等级字符串对应不同的分数。博主提供的解决方案即题意本身。

#include <stdio.h>
int main()
{
	puts("转载请注明出处谢谢");
	puts("http://blog.csdn.net/vmurder/article/details/43449913");
}


看题意的时间远比写的时间长?

估计是bestcoder某round 的T1?

我要写的不是4810么?……


题意:

多组数据,每组输入n次成绩ci、leveli

然后每个leveli都是个字符串,都对应一个分数si,


然后照下面式子输出


什么?你问我题解?上面的题意就是题解!

代码:

#include <map>
#include <string>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 100
#define eps 1e-5
using namespace std;

map<string,double>M;
double s,sum1,sum2;
string level;
int n;
void init()
{
	M["A"]=4.0;
	M["A-"]=3.7;
	M["B+"]=3.3;
	M["B"]=3.0;
	M["B-"]=2.7;
	M["C+"]=2.3;
	M["C"]=2.0;
	M["C-"]=1.7;
	M["D"]=1.3;
	M["D-"]=1.0;
	M["F"]=0;
}
int main()
{
	freopen("test.in","r",stdin);
	init();	

	int i,j,k;
	while(scanf("%d",&n)!=EOF)
	{
		sum1=sum2=0;
		while(n--)
		{
			cin>>s>>level;
			if(level=="P"||level=="N")continue;
			sum1+=s*M[level];
			sum2+=s;
		}
		if(sum2<eps)puts("0.00");
		else printf("%.2lf\n",sum1/sum2);
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值