文章

【GESP】C++一级练习 luogu-B2057, 最高的分数

一级练习,寻找一组数的最大值。是一个基础算法逻辑,在后面的题中会有大量的应用。

luogu-B2057

题目要求

描述

孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?。

输入

输入两行,第一行为整数 $n$ ($1\le n<100$),表示参加这次考试的人数。第二行是这 $n$ 个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为 $0$ 到 $100$ 之间的整数。

输出

输出一个整数,即最高的成绩。

输入样例-1

5
85 78 90 99 60

输出样例-1

99


题目分析

  • 读取学生人数$n$的值
  • 循环$n$次,读取每个学生的分数
  • 更新最大分数
  • 输出最大分数

这里因为给定了分数的范围是1-100,因此将最大值初始化为0,保证从第1个学生的分数一定可以更新到max上,算法才能成立。

这里也可以采用判断是第一个学生就直接给max初始化值的方法,更通用。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main() {
    int n; // 定义整数n,用于存储学生人数
    cin >> n; // 从输入流中读取n的值
    int max = 0; // 初始化最大分数为0
    int point; // 定义整数point,用于存储每个学生的分数
    for (int i = 1; i <= n; i++) { // 循环n次,处理每个学生的分数
        cin >> point; // 从输入流中读取每个学生的分数
        if (point > max) { // 如果当前分数大于最大分数
            max = point; // 更新最大分数
        }
    }
    cout << max; // 输出最大分数
    return 0; // 返回0,表示程序执行成功
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

本文由作者按照 CC BY 4.0 进行授权