【杭电100题】校庆杯Warm Up 2061 Treasure the new start, freshmen!_求GPA

本文介绍了一个使用C++编程语言实现的GPA计算器,该计算器能够处理多个测试用例,计算平均绩点,并考虑到挂科情况。通过输入课程名称、学分和分数,程序能准确地计算出GPA或输出挂科提示。

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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值