2025年西安交通大学计算机考研复试机试真题
2025年西安交通大学计算机考研复试上机真题
历年西安交通大学计算机考研复试上机真题
历年西安交通大学计算机考研复试机试真题
更多学校题目开源地址:https://gitcode.com/verticallimit1/noobdream
N 诺 DreamJudge 题库:输入 “学校名称” 即可筛选该校历年机试真题,题目均在考纲范围内,按难度自动排序。还可搭配《计算机考研机试攻略》刷题,书中题目可通过题号直接在题库中查找。
学生成绩排序
题目描述
Time Limit: 1000 ms
Memory Limit: 256 mb
输入n个学生的学号,三门科目的成绩,按总成绩从大到小输出。保证没有总成绩相同的两个人。
输入输出格式
输入描述:
第一行一个n表示学生的数量。n<=100 接下来n行,每行四个数字,表示学号以及三门科目成绩,以空格分隔。
输出描述:
总成绩排序后输出
输入输出样例
输入样例#:
3 0001 100 100 90 0002 10 10 30 0003 20 20 30
输出样例#:
0001 100 100 90 0003 20 20 30 0002 10 10 30
代码一
- #include<iostream>
- #include<vector>
- #include<algorithm>
- #include<string>
- using namespace std;
- struct stu{
- string id;
- int a,b,c,sum;
- };
- bool cmp(stu a,stu b){
- return a.sum > b.sum;
- }
- int main(){
- int n;
- cin>>n;
- vector<stu> nm(n);
- for(int i = 0; i<n; i++){
- cin>>nm[i].id>>nm[i].a>>nm[i].b>>nm[i].c;
- nm[i].sum = nm[i].a+nm[i].b+nm[i].c;
- }
- sort(nm.begin(),nm.end(),cmp);
- for(int i = 0; i<n; i++){
- cout<<nm[i].id<<" "<<nm[i].a<<" "<<nm[i].b<<" "<<nm[i].c<<endl;;
- }
- return 0;
- }
代码二
- #include <bits/stdc++.h>
- using namespace std;
- typedef struct node{
- string id;
- int yu;
- int shu;
- int wai;
- int sum;
- }node;
- bool cmp(node a,node b){
- return a.sum>b.sum;
- }
- int main() {
- int n;
- cin>>n;
- node a[n];
- for(int i=0;i<n;i++){
- cin>>a[i].id>>a[i].yu>>a[i].shu>>a[i].wai;
- a[i].sum=a[i].yu+a[i].shu+a[i].wai;
- }
- sort(a,a+n,cmp);
- for(int i=0;i<n;i++){
- cout<<a[i].id<<' '<<a[i].yu<<' '<<a[i].shu<<' '<<a[i].wai<<endl;
- }
- }
代码三
#include<bits/stdc++.h>#include<sstream>using namespace std;bool cmp(vector<int> a,vector<int> b) {int A = a[1] + a[2] + a[3];int B = b[1] + b[2] + b[3];return A > B;}int main() {int n;cin >> n;vector<vector<int>> grade(n, vector<int>(4, 0));for (int i = 0; i < n; i++) {int temp;for (int j = 0; j < 4; j++) {cin >> temp;grade[i][j] = temp;}}sort(grade.begin(), grade.end(), cmp);for (int i = 0; i < n; i++) {cout << grade[i][0] << ' ' << grade[i][1] << ' ' << grade[i][2] << ' ' << grade[i][3] << endl;}return 0;}