【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 ...
随机推荐
- Intellij-忽略其他编译错误,运行当前文件
在使用Intellij IDEA的时候,有时候想在项目中写个main()方法或者单元测试测试个功能,但是有其他文件编译出错IDEA就提示我说不能运行,很是烦恼. 能不能像Eclipse一样呢,其他编译 ...
- flex和box-shadow一些兼容性问题
html代码 <div class="creative-list"> <a class="creative-list-item"> &l ...
- Scrollanim – CSS3 & JavaScript 创建滚动动画
Scrollanim 是结合 CSS3 和 JavaScript 来创建令人惊叹的滚动动画的开源库. Scrolanim 支持在页面上的所有可用的元素的位置.有很多的自定义参数可以配置使用,构建出精彩 ...
- spring-boot-2.0.3源码篇 - filter的注册,值得一看
前言 开心一刻 过年女婿来岳父家走亲戚,当时小舅子主就问:姐夫,你什么时候能给我姐幸福,让我姐好好享受生活的美好.你们这辈子不准备买一套大点的房子吗?姐夫说:现在没钱啊!不过我有一个美丽可爱的女儿,等 ...
- Bootstrap-table 使用总结
一.什么是Bootstrap-table? 在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这 ...
- eclipse4.6.1安装SpringSource Tool Suite(sts-eclipse)插件
1. Spring Tool Suite(sts)简介 Spring Tool Suite(sts)就是一个基于Eclipse的开发环境, 用于开发Spring应用程序.它提供了一个现成的使用环境来实 ...
- Vim——回顾整理
一.命令练习(一) hjkl(左下上右) 保存到某路径 :saveas 路径 w 到下一个单词的开头 e 到下一个单词的结尾 % 括号匹配移动(),{},[] 0 到行头 $ 到行头 gU字母变大写 ...
- 解决SQL Server 2008安装时提示:重新启动计算机 失败
a.重启机器,再进行安装,如果发现还有该错误,请按下面步骤: b.在开始->运行中输入regedit c.到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet ...
- C# QuartZ使用实例写成服务
官方学习文档:http://www.quartz-scheduler.net/documentation/index.html 官方的源代码下载:http://sourceforge.net/proj ...
- linux下如何批量杀JAVA进程或某个进程方法
linux下如何批量杀JAVA进程或某个进程方法 在工作中经常需要停止JAVA进程,停止时间也比较长,那么有时候因为一些情况,需要把 linux 下JAVA所有进程 kill 掉,又不能用killal ...