老虎的月测分析

news/2024/7/4 7:49:37

题目描述

今年是虎年,小老虎一年来过得可充实了,一有时间就往电脑室跑,因为他要在“在线测试”系统上拿第一名,成为做题最多的牛人。可小老虎也有烦恼的时候。一天放学,小老虎正走出课室想去电脑室,班主任过来了,因刚中段考完,小老虎知道自己的总分不是全级第一也有第二的那种,就大摇大摆的迎了上去。这时,班主任截住了小老虎,说:“小老虎,作业呢》”咦......半天,小老虎才说:“昨天去奥电班了......”,这时班主任瞪了一眼说:“有时间去奥电班就没有时间做我的作业?去“打机”了吧?!”小老虎无语,不过还是对老师说:“老师,我对天发誓天天在编程,从不玩游戏,越来越聪明了,你看,我这次月测又......”,心里却在想:“切......你的作业这么没有挑战性,有时间我也不做的啦!”这时班主任看出了小老虎的心思,知道作业是追不回来的啦,便想杀杀小老虎的威风。“哦,是啊,你越来越聪明了啊,听说你在奥电班也是拿第一第二的那种,中段考完了,帮老师个忙啊,那数据分析之类的事就你搞掂啦,还有啊,就体艺节了,你想几个游戏给大家活动活动,搞不好啊,以后都别去电脑室编程了,每天老老实实把作业做完”。

小老虎...

输入输出格式

输入格式:

第一行是一个正整数n;

接下来是n行,每行为一个同学的成绩,格式如下:

先是一个字符串,表示这个同学的名字(长度小于等于20,由大小写字母构成),然后是他的4位学号(数据保证是4位,但是可能以0开头),接下来是4个数,分别表示他的语文、数学、英语、综合成绩(这个数在0到150之间,一定是0.5的倍数),最后是一个字符串和一个数(这个数在0到150之间,一定是0.5的倍数),字符串表示他的X科(一定是physics、chemistry、biology中的一个),那个数为他这科的成绩。以上的数据都由一个空格隔开,末尾没有多余的空格。

具体请看样例。

输出格式:

共3行,分别表示选考physics、chemistry、biology中总分最高的同学。每行的输出格式为:

先是一个字符串,表示这个同学的名字,然后是他的4位学号,最后是他的总分。如果总分相同,则输出4位学号最小的。数据保证4位学号互不相同。以上的数据都由一个空格隔开,末尾没有多余的空格。具体请看样例。

输入输出样例

输入样例:
5
apple 0101 150 150 150 150 physics 150
egg 0202 140 130.5 130 150 chemistry 150
banana 0102 130 140 130.5 150 chemistry 150
cat 0103 100.5 100 100 100 biology 100
dog 0288 89.5 89.5 89.5 89.5 physics 91.5
输出样例:
apple 0101 750
banana 0102 700.5
cat 0103 500.5

说明

数据规模:

100%的数据满足:3<=n<=600

数据保证每科至少有一个同学的成绩。

所有的分数应以最简形式输出(例如不要将750输出为750.0)。

输入数据保证所有的分数都为最简形式。

(注意这题要用结构体

#include<bits/stdc++.h>
using namespace std;
struct stu
{
    float x,y,z,j,o;
    string s,m,id;
    int p1;
    double g;
    string name;
}k[10000],p[10000],c[10000],b[10000];
bool cmp(stu a,stu b)
{
    if(a.g!=b.g) return a.g>b.g;
    else return a.id<b.id;
}

int a;
int main()
{
    cin>>a;
    for(int i=1;i<=a;i++)
    {
        cin>>k[i].s>>k[i].id>>k[i].x>>k[i].y>>k[i].z>>k[i].j>>k[i].m>>k[i].o;
        
        if(k[i].m=="physics") 
        {
            p[i].p1=k[i].o;
            p[i].id=k[i].id;
            p[i].g=k[i].x+k[i].y+k[i].z+k[i].j+k[i].o; 
            p[i].name=k[i].s;    
        } 
        
        if(k[i].m=="chemistry")
        {
            c[i].p1=k[i].o; 
            c[i].id=k[i].id; 
            c[i].g=k[i].x+k[i].y+k[i].z+k[i].j+k[i].o; 
            c[i].name=k[i].s;
        } 
        
        if(k[i].m=="biology") 
        {
            b[i].p1=k[i].o; 
            b[i].id=k[i].id; 
            b[i].g=k[i].x+k[i].y+k[i].z+k[i].j+k[i].o; 
            b[i].name=k[i].s;
        }
        
    }
    sort(p+1,p+1+a,cmp); cout<<p[1].name<<" "<<p[1].id<<" "<<p[1].g<<endl; 
    sort(c+1,c+1+a,cmp); cout<<c[1].name<<" "<<c[1].id<<" "<<c[1].g<<endl;
    sort(b+1,b+1+a,cmp); cout<<b[1].name<<" "<<b[1].id<<" "<<b[1].g<<endl;
    
    
    
    
} 

这题写得太匆忙所以没打注释,谅解!

转载于:https://www.cnblogs.com/liaoshuangqi/p/10551737.html


http://www.niftyadmin.cn/n/4556260.html

相关文章

Perl、C、sed、awk、shell scripting 谁有好点的电子书

http://www.xiaoshuojia.com.cn/  书友之家http://www.wytxt.com/  小说导航http://www.uu366.com/book/download.html  梅雨电子书下载论坛http://bbs.myt66.com/  小说下载网http://www.entyes.com/  33文学网http://www.55txt.com/  txt电子书库http://www.txtk…

C语言初级问题

单精度转双精度 直接赋值就可以了例如 float t10.0; double s; s(double)t;字符型转双精度 我的方法是先转int 再强制转换为double例如 char s5; int t; double d; ts-48;//ascll码表 d(double)t;

谁有C#实例的网站或电子书

非常不错 http://www.51aspx.com/ ||| 我下载了一些http://www.csdn.net/ ||| 博客园去百度搜 里面很多实例跟书籍 我介绍个网址给你

Maximize Sum Of Array After K Negations

1 heapq.heapify(A) 2 for i in range(K): 3 heapq.heapreplace(A, -A[0]) 4 5 return sum(A) 最近在看python&#xff0c;该题现在最快的算法 1 A.sort()2 bZero False3 ret 0;4 minNum sys.max…

怎样才能最快学会c#程序

上课有人教 做多了就明白其中的意思了&#xff09; 下课多做练习&#xff08;这个重要 从基础到一般的应用 认真听课 到的不够好..没人说其实是瓶口太小... ||| 介绍一本《C&#xff03;入门基础》看看 一定要有耐心的去看 刻苦的钻研 下课还是靠自己、 ||| 认真 刻苦 ||| 看网…

电脑编程C++是什么意思

||| C是一种编程 C是一种不完全面向对像的语言~ ||| 1.C从零开始&#xff08;一&#xff09;——何谓编程 - 编程心得 - 文档中心 - 源码...2.编程 只需要按每个编程语言各自特点变下就OK了 都差不多 学会了C其他什么JAVA的 ||| c是一种编程语言而已 程序员 ||| 我感觉学习编程…

JavaScript数组常用方法总结

参考&#xff1a;https://www.infoq.cn/article/3L*kK19KH2Ey7GIVBGsN map、filter、reduce map&#xff1a;返回一个数组&#xff0c;其中每个元素都使用指定函数进行过转换。const arr [1, 2, 3, 4, 5, 6]; const mapped arr.map(el > el 20); console.log(mapped); //…

c语言编程

wParam uMsg MB_YESNO)) { DestroyWindow(hwnd); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd L"zhuzi" L"真的退出" hDC); } break; case WM_CLOSE: if(IDYESMessageBox(hwnd (int)wcslen(L"猪万岁&q…