Problem Description
如果有K(K > 0)课程,第i个课程学分为Ci,你的分数为Si,那么结果是GPA成绩=(C1 * S1 + C2 * S2 +… + Ci * Si)/(C1 + C2 + + Ci)(1 < =我< = K,Ci ! = 0)
如果有0 <= Si < 60分(挂科),平均绩点不存在的。
Input
第一个数字N表示有N个测试用例(N <= 50)。
在每种情况下,都有一个数字K(总课程数),然后是K行,每一行都遵循以下格式:课程名称(长度<= 30)、学分(<= 10)、分数(<= 100)。(学分和分数不一定是整数)
注意:课程名称中没有空格。
所有的输入都是合法的
Output
输出上面描述的每个案例的GPA,如果GPA不存在,输出:“Sorry!”,否则只输出GPA值,在小数点后四舍五入到两位数。
在两个测试用例之间有一个空白行,结尾无空白行。
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
int n,m;
cin>>n;
string cn; double c; double s;
double ct,st;
bool flag;
while(n-->0){
cin>>m;
ct=st=0;
flag=true;
while(m-->0){
cin>>cn;
cin>>c>>s;
if(s<60){flag=false;}
ct+=c;
st+=(c*s);
}
if(flag)printf("%.2lf",(double)st/ct);
else cout<<"Sorry!";
cout<<endl;
if(n!=0)cout<<endl;
}
return 0;
}
if(s<60){flag=false;}
ct+=c;
st+=(c*s);
}
if(flag)printf("%.2lf",(double)st/ct);
else cout<<"Sorry!";
cout<<endl;
if(n!=0)cout<<endl;
}
return 0;
}