PTA GPA

输入的第一行包含一个整数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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值