https://pintia.cn/problem-sets/1780905363684728832/exam/problems/1780905676168753164?type=7&page=0
13 GPA
分数 300
作者 江太白
单位 江西财经大学
输入格式:
输入的第一行包含一个整数n表示A的课程数,以下n行每行Si,Ci分别表示第i个课程的学分与A的表现。
GPA=Σ(Si*Ci) / Σ(Si)。
特殊地,如果Ci是'P'或者'N'(对应于通过与不通过),则第i个课程不记入GPA的计算(即当其不存在)。
A读入结束后读入B,B的输入格式与A相同。
保证2人的Σ(Si)非零
输出格式:
输出A的GPA - B的GPA的值,保留2位小数(四舍五入)
Tips:当A和B的分数相近时输出0.00。
输入样例:
2
1 10
2 N
2
1 10
1 5
输出样例:
2.50
数据规模和约定
输入的所有数字均为不超过100的非负整数
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n=0;
cin>>n;
double g1=0,g2=0;
int s1=0,s2=0;
double c1=0,c2=0;
int sum1=0,sum2=0;
while(n--)
{
string str;
cin>>s1>>str;
if(str=="P"||str=="N")
;
else
{
c1=atof(str.c_str());
sum1+=s1;
g1+=s1*c1;
}
}
if(sum1!=0)
g1/=sum1*1.0;
cin>>n;
while(n--)
{
string str;
cin>>s2>>str;
if(str=="P"||str=="N")
;
else
{
c2=atof(str.c_str());
sum2+=s2;
g2+=s2*c2;
}
}
if(sum2!=0)
g2/=sum2*1.0;
printf("%.2lf",g1-g2);
return 0;
}
有一个测试用例无法通过,求uu们帮助看看