【2024华为OD-E卷-100分-优秀学员统计】(题目+思路+Java&C++&Python解析)

题目描述

2024华为OD-E卷-100分-优秀学员统计

某学校在一次考试中,记录了学生的成绩和姓名。现在需要统计出成绩在90分以上的优秀学员,并输出他们的姓名和成绩。

输入格式

  • 第一行输入一个整数 n,表示学生人数。
  • 接下来 n 行,每行输入一个学生的姓名和成绩,姓名和成绩之间用空格隔开。

输出格式

  • 输出所有成绩在90分以上的学生的姓名和成绩,每个学生的姓名和成绩占一行,按照输入顺序输出。

示例输入

5
Alice 85
Bob 92
Charlie 95
David 88
Eve 90

示例输出

Bob 92
Charlie 95
Eve 90

思路

  1. 读取输入:首先读取学生人数 n,然后读取每个学生的姓名和成绩。
  2. 存储数据:可以使用一个列表或数组来存储每个学生的姓名和成绩。
  3. 筛选数据:遍历存储的数据,筛选出成绩在90分以上的学生。
  4. 输出结果:按照输入顺序输出符合条件的学生的姓名和成绩。

Java 编码解析

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ExcellentStudents {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        int n = scanner.nextInt();
        scanner.nextLine(); // 读取换行符
        
        List<String[]> students = new ArrayList<>();
        
        for (int i = 0; i < n; i++) {
            String line = scanner.nextLine();
            String[] parts = line.split(" ");
            students.add(parts);
        }
        
        for (String[] student : students) {
            String name = student[0];
            int score = Integer.parseInt(student[1]);
            if (score > 90) {
                System.out.println(name + " " + score);
            }
        }
        
        scanner.close();
    }
}

C++ 编码解析

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main() {
    int n;
    cin >> n;
    cin.ignore(); // 忽略换行符
    
    vector<pair<string, int>> students;
    
    for (int i = 0; i < n; ++i) {
        string line;
        getline(cin, line);
        size_t pos = line.find(' ');
        string name = line.substr(0, pos);
        int score = stoi(line.substr(pos + 1));
        students.push_back({name, score});
    }
    
    for (const auto& student : students) {
        if (student.second > 90) {
            cout << student.first << " " << student.second << endl;
        }
    }
    
    return 0;
}

Python 编码解析

def main():
    import sys
    input = sys.stdin.read
    data = input().split()
    
    n = int(data[0])
    index = 1
    students = []
    
    for _ in range(n):
        name = data[index]
        score = int(data[index + 1])
        students.append((name, score))
        index += 2
    
    for student in students:
        if student[1] > 90:
            print(student[0], student[1])

if __name__ == "__main__":
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执着的小火车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值