#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;
}
原文地址:http://blog.csdn.net/vmurder/article/details/43449913