【PAT】B1080 MOOC期终成绩(25 分)
还是c++好用,三部分输入直接用相同的方法,
用map映射保存学生在结构体数组中的下标。
结构体保存学生信息,其中期末成绩直接初始化为-1,
注意四舍五入
此题还算简单
#include<iostream>
#include<stdio.h>
#include<map>
#include<string>
#include<algorithm>
using namespace std;
struct stu{
string name;
int gp = -1, gm = -1, gf = -1, G = 0;
}arr[30000];
int num=0;
bool cmp(stu A,stu B){
if(A.G!=B.G) return A.G>B.G;
else return A.name<B.name;
}
int main() {
int P, M, N;
scanf("%d%d%d", &P, &M, &N);
map<string, int> mp; //mp用来保存学生结构体在数组中的下标
for (int i = 0; i<P; i++) {//在线编程
string id; int score;
cin >> id >> score;
if(mp.count(id)==0){//如果学生第一次出现
mp[id] = num++;
arr[mp[id]].name = id;
}
arr[mp[id]].gp=score;
}
for (int i = 0; i<M; i++) {//其中
string id; int score;
cin >> id >> score;
if(mp.count(id)==0){//如果学生第一次出现
mp[id] = num++;
arr[mp[id]].name = id;
}
arr[mp[id]].gm=score;
}
for (int i = 0; i<N; i++) {//期末
string id; int score;
cin >> id >> score;
if(mp.count(id)==0){//如果学生第一次出现
mp[id] = num++;
arr[mp[id]].name = id;
}
arr[mp[id]].gf=score;
}
for(int i=0;i<num;i++){
if(arr[i].gm>arr[i].gf)
arr[i].G=(int)(arr[i].gm*0.4+arr[i].gf*0.6+0.5);
else
arr[i].G=arr[i].gf;
}
sort(arr,arr+num,cmp);
for(int i=0;i<num;i++){
if(arr[i].gp>=200&&arr[i].G>=60){
cout<<arr[i].name;
printf(" %d %d %d %d\n",arr[i].gp,arr[i].gm,arr[i].gf,arr[i].G);
}
}
return 0;
}
【PAT】B1080 MOOC期终成绩(25 分)的更多相关文章
- PAT B1080 MOOC期终成绩(C++)
PAT甲级目录 | PAT乙级目录 题目描述 B1080 MOOC期终成绩 解题思路 可利用 map 将字符串型的学号转换为整型的序号,方便查找.输入全部成绩后,遍历每个学生同时计算最终成绩,然后将成 ...
- PAT1080 MOOC期终成绩 (25分) ——同样参考了柳婼大神的代码及思路,在自己的代码上做了修改,还是很复杂
1080 MOOC期终成绩 (25分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分 ...
- PAT Basic 1080 MOOC期终成绩 (25 分)
对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分( ...
- PAT 1080 MOOC期终成绩(25)(STL-map及multiset+思路+测试点分析)
1080 MOOC期终成绩(25 分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格证书,必须首先获 ...
- 1080. MOOC期终成绩 (25)
对于在中国大学MOOC(http://www.icourse163.org/)学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分(满 ...
- PAT 1080 MOOC期终成绩
https://pintia.cn/problem-sets/994805260223102976/problems/994805261493977088 对于在中国大学MOOC(http://www ...
- P1080 MOOC期终成绩
1080 MOOC期终成绩 (25分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分 ...
- PAT 乙级 1080 MOOC期终成绩 (25 分)
1080 MOOC期终成绩 (25 分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的 ...
- PAT 1009 Product of Polynomials (25分) 指数做数组下标,系数做值
题目 This time, you are supposed to find A×B where A and B are two polynomials. Input Specification: E ...
随机推荐
- 和我一起打造个简单搜索之SpringDataElasticSearch入门
网上大多通过 java 操作 es 使用的都是 TransportClient,而介绍使用 SpringDataElasticSearch 的文章相对比较少,笔者也是摸索了许久,接下来本文介绍 Spr ...
- Kali中装中文输入法小企鹅
STEP 1. 装fcitx框架,apt-get install fcitx STEP 2. 装googlepinyin输入法,apt-get install fcitx-googlepinyin S ...
- 三、TortoiseGit之配置密钥
TortoiseGit使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥. 也就是说使用 ssh-keygen -t rsa -C "username@email.co ...
- SSM框架、Druid连接池实现多数据源配置(已上线使用)
总体大概流程: 1.配置数据源.账密(账密一致,文章不多阐述) driverClassName = com.mysql.jdbc.Driver validationQuery = SELECT 1 ...
- JavaScript跨域解决方式
平时工作中经常被JavaScript跨域问题所困扰,其实有很多种解决方式,下面给大家介绍常用的几种: 1.jsonp解决跨域问题 客户端代码: <!DOCTYPE html> <ht ...
- [BZOJ 4671]异或图
Description 题库链接 给定 \(s\) 个结点数相同且为 \(n\) 的图 \(G_1\sim G_s\) ,设 \(S = \{G_1, G_2,\cdots , G_s\}\) ,问 ...
- [HEOI2016] 字符串
Description 给定长度为n的字符串,m次询问,每次询问s[a...b]的所有子串与s[c...d]的LCP的最大值.n,m<=10^5. Solution 感觉这种n,m<=10 ...
- Vim 字符串替换命令
命令模式下输入如下命令可实现替换: s/str1/str2/ 替换当前行第一个 str1 为 str2 s/str1/str2/g 替换当前行中所有的 str1 为 str2 m,ns/str1/st ...
- [PHP] 算法-请找出带环链表的环的入口结点的PHP实现
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null 1.找链表倒数第k个结点,输入一个链表,输出该链表中倒数第k个结点.第一个指针走(k-1)步,到达第k个节点,两个指针同时往后 ...
- request请求 HTTPBody 格式
//Json格式 [mtbRequset setValue:@"application/json" forHTTPHeaderField:@"Content- ...