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

最新文章

  1. 深度浅出immutable.js
  2. LTE Module User Documentation(翻译15)——示例程序、参考场景以及故障检测和调试技巧
  3. Java,Calendar 获得明天凌晨的时间time
  4. How to disable and clear query ranges in sysquery form
  5. Metro中控件WebView访问外部的网页显示一片空白
  6. **IOS:xib文件解析(xib和storyboard的比较,一个轻量级一个重量级)
  7. 利用ddmlib 实现 PC端与android手机端adb forword socket通信(转)
  8. linux同步
  9. wx.Frame
  10. .NET面试题目一
  11. javascript执行原理
  12. 小白的Python之路 day5 time,datatime模块详解
  13. 学习MeteoInfo二次开发教程(十)
  14. Faster-RCNN tensorflow 程序细节
  15. LeetCode--No.014 Longest Common Prefix
  16. 使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
  17. 高斯日记|2013年蓝桥杯B组题解析第一题-fishers
  18. UVa 208 消防车(dfs+剪枝)
  19. ip netns
  20. MVC: Connection String

热门文章

  1. Android使用AIDL跨进程通信
  2. 边缘化搭建 DotNet Core 2.1 自动化构建和部署环境(下)
  3. EIGRP路由协议的简单理解及应用
  4. EntityFramework附加实体
  5. Spring @Pathvariable
  6. fiddler对Iphone6s进行抓包教程
  7. Hibernate学习(一)———— 第一个hibernate工程
  8. JWT 从入门到精通
  9. N最短路径分词
  10. Django之web应用、http协议和django简介