1004 成绩排名 (20 分)

简介: 读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。


输入格式:

每个测试输入包含 1 个测试用例,格式为

1. 第 1 行:正整数 n
2. 第 2 行:第 1 个学生的姓名 学号 成绩
3. 第 3 行:第 2 个学生的姓名 学号 成绩
4.   ... ... ...
5. 第 n+1 行:第 n 个学生的姓名 学号 成绩


其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。


输出格式:

对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。


输入样例:

1. 3
2. Joe Math990112 89
3. Mike CS991301 100
4. Mary EE990830 95


输出样例:

1. Mike CS991301
2. Joe Math990112

这是一道典型的结构体题目:

代码如下:


C语言:


#include<stdio.h>
struct student
{
  char name[20];
  char id[20];
  int score;
};
int main()
{
  int n;
  scanf("%d",&n);
  struct student stu[n];
  int i,max,min;
  for(i=0;i<n;i++)
    scanf("%s %s %d",stu[i].id,stu[i].name,&stu[i].score);
  max=stu[0].score;
  min=stu[0].score;
  for(i=0;i<n;i++)
  {
    if(max<stu[i].score){
      max=stu[i].score;
    } 
    if(min>stu[i].score){
      min=stu[i].score;
    }
  }
  for(i=0;i<n;i++)
  {
    if(stu[i].score==max){
      printf("%s %s\n",stu[i].id,stu[i].name);
    }
  }
  for(i=0;i<n;i++)
  {
    if(stu[i].score==min){
      printf("%s %s",stu[i].id,stu[i].name);
    }
  }
  return 0;
}

C++:

#include <iostream>
using namespace std;
struct student {
  char name[20];
  char id[20];
  int score;
};
int main() {
  int n;
  cin >> n;
  struct student stu[n];
  int i, max, min;
  for (i = 0; i < n; i++)
    cin >> stu[i].id >> stu[i].name >> stu[i].score;
  max = stu[0].score;
  min = stu[0].score;
  for (i = 0; i < n; i++) {
    if (max < stu[i].score) {
      max = stu[i].score;
    }
    if (min > stu[i].score) {
      min = stu[i].score;
    }
  }
  for (i = 0; i < n; i++) {
    if (stu[i].score == max) {
      cout << stu[i].id << " " << stu[i].name << endl;
    }
  }
  for (i = 0; i < n; i++) {
    if (stu[i].score == min) {
      cout << stu[i].id << " " << stu[i].name;
    }
  }
  return 0;
}

OK成功解题!

相关文章
|
1月前
7-33 出生年 (15 分)
7-33 出生年 (15 分)
37 0
|
13天前
1077 互评成绩计算 (20 分)
1077 互评成绩计算 (20 分)
|
13天前
1073 多选题常见计分法 (20 分)
1073 多选题常见计分法 (20 分)
|
13天前
1038 统计同成绩学生 (20 分)
1038 统计同成绩学生 (20 分)
|
7月前
某学科成绩的录入并显示出最高分,最低分,平均值。
某学科成绩的录入并显示出最高分,最低分,平均值。
PTA 1077 互评成绩计算 (20 分)
在浙大的计算机专业课中,经常有互评分组报告这个环节。
136 0
PTA 1038 统计同成绩学生 (20 分)
本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。
69 0
L1-033 出生年 (15 分)
L1-033 出生年 (15 分)
186 0
L1-033 出生年 (15 分)
|
测试技术
PAT乙级1004.成绩排名(20分)
PAT乙级1004.成绩排名(20分)
76 0
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过40人参加考试。请编程计算:(1)每个学生的总分和平均分;(2)每门课程的总分和平均分。
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过40人参加考试。请编程计算:(1)每个学生的总分和平均分;(2)每门课程的总分和平均分。
322 0