[蓝桥杯]算法提高 GPA
2024-10-09 06:02:26
问题描述
输入A,B两人的学分获取情况,输出两人GPA之差。
输入格式
输入的第一行包含一个整数n表示A的课程数,以下n行每行Si,Ci分别表示第i个课程的学分与A的表现。
GPA=Σ(Si*Ci) / Σ(Si)。
特殊地,如果Ci是'P'或者'N'(对应于通过与不通过),则第i个课程不记入GPA的计算(即当其不存在)。
A读入结束后读入B,B的输入格式与A相同。
保证2人的Σ(Si)非零
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。
Tips:当A和B的分数相近时输出0.00。
样例输入
2
1 10
2 N
2
1 10
1 5
1 10
2 N
2
1 10
1 5
样例输出
2.50
数据规模和约定
输入的所有数字均为不超过100的非负整数
大晚上不能写题,到点就该睡。。。又钻牛角尖了,一道简单题写了两个小时。。。我弱智了。。。
不 我要甩锅 想到1e-6然后交了无数遍都不行
结果心里告诉自己有可能想复杂了 回去看题 发现精确度并没有那么高 0.01就行
好的 我还是弱智了一把
两个小时看电影他不香吗???
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring> using namespace std;
double gpa[]; int main(){
int n, p, cnt = ; for(int j = ; j < ; j++){
double ans1 = , ans2 = ;
cin >> n;
for(int i = ; i < n ; i++){
char q[];
scanf("%d %s", &p, q); if(q[] != 'P' && q[] != 'N'){
int aa = ;
for(int k = ; k < ; k++){
if(q[k] >= '' && q[k] <= ''){
int tt = q[k] - '';
aa = aa * + tt;
}
}
ans1 += p * aa;
ans2 += p;
}
}
gpa[j] = ans1 / ans2;
} double res = gpa[] - gpa[];
if(res >= 0.01 || res <= -0.01) printf("%.2lf\n", res);
else cout << "0.00" << endl; return ;
}
最新文章
- Logstash实践: 分布式系统的日志监控
- 【生活没有希望】poj1273网络流大水题
- js模版引擎handlebars.js实用教程——each-循环中使用this
- 循序渐进开发WinForm项目(1) --数据库设计和项目框架的生成
- Linux_DHCP服务搭建
- 布置theano(Ubuntu14.04 LTS)
- 使用磁盘为Linux添加swap
- Java学习笔记(四):流程控制
- BZOJ 1024: [SCOI2009]生日快乐 dfs
- js中的访问器属性中的getter和setter函数实现数据双向绑定
- 在Sql Server Intergration Service中设置Catalog下所部署所有项目的参数值
- Servlet配置
- 20165230 学习基础和C语言基础调查
- Innodb中的行锁与表锁
- Python自动化开发 - 网络编程
- python dict 和 json 互转
- What-are-P-NP-NP-complete-and-NP-hard
- MongoDB(课时3 MongoDB基本操作)
- 【Laravel】Mac下玩转Laravel
- jdbc预编译插入数据操作