1. 程式人生 > >【HDU4802】GPA C++語法基礎題(真是瞎了)

【HDU4802】GPA C++語法基礎題(真是瞎了)

#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;
}