成绩排名
Description
又到一年一度的期末考试了,老师们最头痛的问题就是从一堆学生中找最高分和最低分,你快来帮忙吧。
Input
测试数据有多组,每组首先是一个正整数n(0 < n < 31),接下来是n行数据,每行数据代表一个学生的成绩,分部为学生的姓名、学号、成绩。其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
Output
每组分两行输出成绩最高和成绩最低学生的姓名、学号和成绩,字符串间有1空格,两组之间用空行隔开。
Sample Input
3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
2
Zhangsan SW9801 70
Lisi EN9801 59
Sample Output
Mike CS991301 100
Joe Math990112 89
Zhangsan SW9801 70
Lisi EN9801 59
#include<stdio.h>
#include<string.h>
int main()
{
int i,n;
char name[100][15];
char number[100][15];
int grade[100];
int nmax;
int cmax;
int nmin;
int cmin;
while(scanf("%d",&n)!=EOF)
{
nmax=0;
cmax=0;
nmin=100;
cmin=0;
for(i=0;i<n;i++)
{
scanf("%s %s %d",name[i],number[i],&grade[i]);
if(nmax<grade[i])
{
nmax=grade[i];
cmax=i;
}
if(nmin>grade[i])
{
nmin=grade[i];
cmin=i;
}
}
printf("%s %s\n",name[cmax],number[cmax]);
printf("%s %s\n",name[cmin],number[cmin]);
}
return 0;
}
//
// main.cpp
// a1
//
// Created by 刘欢 on 17/1/26.
// Copyright © 2017年 刘欢. All rights reserved.
//
#include<stdio.h>
struct student
{
char name[15];
char no[15];
int grade;
}stu[100];
int main()
{
int n,i;
int max=0,min=100;
int cmax=0,cmin=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %s %d",stu[i].name,stu[i].no,&stu[i].grade);
if(max<stu[i].grade)
{
max=stu[i].grade;
cmax=i;
}
if(min>stu[i].grade)
{
min=stu[i].grade;
cmin=i;
}
}
printf("%s %s\n",stu[cmax].name,stu[cmax].no);
printf("%s %s\n",stu[cmin].name,stu[cmin].no);
return 0;
}