还是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 分)的更多相关文章

  1. PAT B1080 MOOC期终成绩(C++)

    PAT甲级目录 | PAT乙级目录 题目描述 B1080 MOOC期终成绩 解题思路 可利用 map 将字符串型的学号转换为整型的序号,方便查找.输入全部成绩后,遍历每个学生同时计算最终成绩,然后将成 ...

  2. PAT1080 MOOC期终成绩 (25分) ——同样参考了柳婼大神的代码及思路,在自己的代码上做了修改,还是很复杂

    1080 MOOC期终成绩 (25分)   对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分 ...

  3. PAT Basic 1080 MOOC期终成绩 (25 分)

    对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分( ...

  4. PAT 1080 MOOC期终成绩(25)(STL-map及multiset+思路+测试点分析)

    1080 MOOC期终成绩(25 分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格证书,必须首先获 ...

  5. 1080. MOOC期终成绩 (25)

    对于在中国大学MOOC(http://www.icourse163.org/)学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分(满 ...

  6. PAT 1080 MOOC期终成绩

    https://pintia.cn/problem-sets/994805260223102976/problems/994805261493977088 对于在中国大学MOOC(http://www ...

  7. P1080 MOOC期终成绩

    1080 MOOC期终成绩 (25分)   对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分 ...

  8. PAT 乙级 1080 MOOC期终成绩 (25 分)

    1080 MOOC期终成绩 (25 分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的 ...

  9. 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 ...

随机推荐

  1. 第三章:Activity的生命周期

    一:Activity的生命周期方法 Android提供了很多Activity的生命周期方法,比如我们常用的onCreate.onPause.onResume等.这里主要介绍粗粒度的周期方法,诸如onP ...

  2. an error occurred attempting install_Github_for_windows_无法安装的解决方法_

    都在这了,作者原创.我就截图好了.

  3. 11个教程中不常被提及的JavaScript小技巧

    这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在ES6中新增的,它类似于数组,但是 ...

  4. 【详解】WebSocket相关知识整理

    前言 记得大概半年前就产生了疑惑,即后台如何主动向前端推送数据.问了下专业老师,知道了原来有一个叫WebSocket的技术可以用于推送数据.于是,当时我就找了个教程,用的是Spring WebSock ...

  5. 学习html5的网站

    http://www.html5cn.org/ http://www.html5china.com/ http://www.mhtml5.com/

  6. 详解@EnableWebMvc

    最近看了<Spring in Action>的开头,就被Spring注解开发(完全不写web.xml)惊叹了,也第一次知道了@EnableWebMvc是SpringMVC的注解 @Enab ...

  7. JavaWeb学习 (八)————HttpServletResponse对象(二)

    一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,

  8. SQL 查看表每一个列的名字以及类型

    select a.name,b.name from sys.columns as a join sys.types as b on a.system_type_id=b.system_type_id ...

  9. SVN外网访问内网的操作步骤

    外网访问内网SVN 需要将路由映射到VisualSVN server 的443端口 将外网的端口从路由器上进行映射到内网端口,例如将外网的6000端口映射为内网的443端口,443为svn服务器默认端 ...

  10. npm包

    https://www.cnblogs.com/xinxingyu/p/5736244.html     node - glob模块讲解 https://github.com/isaacs/node- ...