题目:
“停课不停学”非常时期全体学生都不能到学校上课,学生们都是利用网络平台在网上进行学习。为了检测学生们的学习效果,科丁学校的信息学老师进行了一次月考,此次考试一共分了三种题型,阅读程序题、完善程序题和评测题,每种题型的满分都是100分。考试结束后信息学老师想对学生的考试成绩进行统计,他想知道每种题型的最高分是分别是多少,另外他还想知道总分排名前5名的同学成绩以及排名后5名的同学成绩。
请你编写一个程序帮助老师完成统计工作。
输入格式
第一行,一个整数n,表示参加考试的学生的数量。5≤N≤500;
接下来n行,每行3个用空格隔开的整数,分别表示每个学生的三种题型的得分情况,每个整数都是0到100之间的。
输出格式
第一行,输出三个整数,分别表示三种题型的最高分,用空格隔开。
第二行,输出五个整数,分别表示排名前5名的同学的总成绩,用空格隔开
解析:
这道题
比较简单
难度低于第二题
有很多计算
在输入的时候就可以完成
我们可以先输入每个人每道题的分数
同时通过打擂台的方式寻找出每种题型的最大值
并且算出这个同学的总分
等到全部输入完了
将总分sort一下
sort是从小到大排序的
而我们需要的是从大到小来排序
不过没关系
我们先将第n项、第n-1项、第n-2项、第n-3项、第n-4项输出
再将第5项、第4项、第3项、第2项、第1项输出
就结束了
下面是代码:
代码:
#include<bits/stdc++.h>
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
int main()
{
int n,a[510],b[510],c[510],d[510],maxa=0,maxb=0,maxc=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b[i]>>c[i];
if(a[i]>maxa) maxa=a[i];
if(b[i]>maxb) maxb=b[i];
if(c[i]>maxc) maxc=c[i];
d[i]=a[i]+b[i]+c[i];
}
sort(d+1,d+1+n);
cout<<maxa<<" "<<maxb<<" "<<maxc<<endl;
for(int i=n;i>=n-4;i--)
cout<<d[i]<<" ";
cout<<endl;
for(int i=5;i>=1;i--)
cout<<d[i]<<" ";
return 0;
}