1004 成绩排名

简介: 1004 成绩排名

题目描述

1004 成绩排名题目描述

解题思路

自定义结构体类型,成员包括姓名,学号,成绩。

对于姓名和学号是字符串,注意有\0,数组大小最小为11

我们分别用a,b表示最低成绩的下标,最高成绩的下标。用min,max分别表示最小成绩和最大成绩。

循环进行比较找出最低成绩的下标与最高成绩的下标。最后输出即可。

具体实现看下面的代码:

代码实现

#include <stdio.h>
#include <stdlib.h>
typedef struct studet
{
  char name[11];
  char id[11];
  int grade;
}stu;
int main()
{
  int n;
  scanf("%d", &n);
  stu* people = (stu*)malloc(n * sizeof(stu));
  int i = 0;
  int a = 0, b = 0, min = 0, max = 0;
  for (i = 0; i < n; i++)
  {
    scanf("%s%s%d", (people+i)->name, (people + i)->id, &(people + i)->grade);
    if (i == 0)//预设第一个人的成绩既是最大也是最小的
    {
      min = (people + i)->grade;
      max = (people + i)->grade;
    }
    //进行比较,找出最低成绩的下标与最高成绩的下标
    if ((people + i)->grade < min)
    {
      min = (people + i)->grade;
      a = i;
    }
    if ((people + i)->grade > max)
    {
      max = (people + i)->grade;
      b = i;
    }
  }
  //输出
  printf("%s %s\n", (people + b)->name, (people + b)->id);
  printf("%s %s\n", (people + a)->name, (people + a)->id);
  return 0;
}

相关文章
|
测试技术 C++
【PAT】 1004成绩排名
1004. 成绩排名 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
1000 0
|
测试技术 C语言 C++
1004 成绩排名 (20 分)
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
256 0
|
9月前
NYOJ-757-期末考试
NYOJ-757-期末考试
35 0
|
9月前
|
C++
C++期末考试注意点
C++期末考试注意点
36 0
|
9月前
|
C++
C++期末考试注意点2
C++期末考试注意点2
49 1
|
测试技术
PTA 1004 成绩排名
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
114 0
|
算法 Java BI
hduoj1285确定比赛名次
 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11940    Accepted Submission...
899 0
|
算法 搜索推荐
蓝桥杯丨简单排序
蓝桥杯丨简单排序
94 0

热门文章

最新文章