Menu
CoddyTech

回顾:成绩汇总器

本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 66 课,共 66 课。

challenge icon

挑战

简单

你会收到多个表示学生成绩的输入。第一个输入是一个数字,表示后面会有多少个成绩。然后你会收到相应数量的成绩值(每行一个)。处理这些成绩,并给出全面的汇总。

要求:

  • 读取第一个输入(成绩数量),去除空白字符,并将其解析为 i32
  • 创建一个空向量来存储成绩
  • 使用循环读取每个成绩,去除空白字符,将其解析为 i32,然后添加到向量中
  • 计算平均成绩(所有成绩的总和除以成绩数量)
  • 找出向量中的最高成绩
  • 找出向量中的最低成绩
  • 统计及格成绩的数量(70 或以上)
  • 统计不及格成绩的数量(低于 70)
  • 按照下方显示的确切格式打印结果

输出格式:

  • 第 1 行:Average: X(其中 X 是整数形式的平均成绩)
  • 第 2 行:Highest: X(其中 X 是最高成绩)
  • 第 3 行:Lowest: X(其中 X 是最低成绩)
  • 第 4 行:Passing: X(其中 X 是及格成绩的数量)
  • 第 5 行:Failing: X(其中 X 是不及格成绩的数量)

输入:

  • 第一行:成绩数量(例如,5)
  • 后续各行:各个成绩值(例如,85、92、67、78、95)

输出:

  • 五行,分别显示平均成绩、最高成绩、最低成绩、及格数量和不及格数量

亲手试试

use std::io;

fn main() {
    // 读取成绩的数量
    let mut count_input = String::new();
    io::stdin().read_line(&mut count_input).expect("Failed to read line");
    let count: i32 = count_input.trim().parse().expect("Invalid number");
    
    // 创建一个向量来存储成绩
    let mut grades: Vec<i32> = Vec::new();
    
    // 读取每个成绩
    for _ in 0..count {
        let mut grade_input = String::new();
        io::stdin().read_line(&mut grade_input).expect("Failed to read line");
        let grade: i32 = grade_input.trim().parse().expect("Invalid number");
        grades.push(grade);
    }
    
    // TODO:在下方编写你的代码
    // 计算平均分,找出最高分和最低分,统计及格和不及格的成绩数量
    
    
    
    // 按要求的格式输出结果
    // println!("Average: {}", average);
    // println!("Highest: {}", highest);
    // println!("Lowest: {}", lowest);
    // println!("Passing: {}", passing_count);
    // println!("Failing: {}", failing_count);
}

逻辑与流程中的所有课

自己练习: Rust 在线编译器