输入的第一行包含一个整数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<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int n,i,j,sum,count,k,a,t,si;
char ci[3];
float gpa[2];
for(j=0;j<2;j++)
{
scanf("%d",&n);
sum=0;count=0;
for(i=0;i<n;i++)
{
scanf("%d %s",&si,ci);
if(ci[0]!='N'&&ci[0]!='P')
{
a=0;
for(k=0;k<3;k++)
{
if(ci[k]>='0'&&ci[k]<='9')
{
t=ci[k]-'0';
a=a*10+t;
}
}
count+=si;
sum+=si*a;
}
}
gpa[j]=sum*1.0/count;
}
if(fabs(gpa[0]-gpa[1])<0.01) printf("0.00\n");
else printf("%.2f\n",gpa[0]-gpa[1]);
return 0;
}