![]() |
#2
rjsp2020-12-07 19:34
|
输入
每个测试输入包含1个测试用例,格式为
第1行:正整数n (1<=n<=100)
第2行:第1个学生的姓名 学号 成绩
第3行:第2个学生的姓名 学号 成绩
... ... ...
第n+1行:第n个学生的姓名 学号 成绩
其中姓名为不超过10个字符的字符串,身份证是标准18位,成绩为0到100之间的一个整数。
输入中至少有一位学生有成绩。
输出
对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,项与项之间有1个空格。如果成绩最高的学生有多个,输出姓名字典序最小的那个,如果成绩最低的有多个,输出姓名字典序最大的那个。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int x,y,i,n,m,t;
char name[1000][20],ID[1000][20];
int grade[1000];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %s %d",name[i],ID[i],&grade[i]);
}
m=t=grade[0];
x=y=0;
for(i=1;i<n;i++)
{
if(m<grade[i])
{
m=grade[i];
x=i;
}
if(t>grade[i])
{
t=grade[i];
y=i;
}
}
printf("%s %s\n",name[x],ID[x]);
printf("%s %s\n",name[y],ID[y]);
return 0;
}
#include <string.h>
#include <stdlib.h>
int main(void)
{
int x,y,i,n,m,t;
char name[1000][20],ID[1000][20];
int grade[1000];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %s %d",name[i],ID[i],&grade[i]);
}
m=t=grade[0];
x=y=0;
for(i=1;i<n;i++)
{
if(m<grade[i])
{
m=grade[i];
x=i;
}
if(t>grade[i])
{
t=grade[i];
y=i;
}
}
printf("%s %s\n",name[x],ID[x]);
printf("%s %s\n",name[y],ID[y]);
return 0;
}