回顾:成绩汇总器
本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 66 课,共 66 课。
挑战
简单你会收到多个表示学生成绩的输入。第一个输入是一个数字,表示后面会有多少个成绩。然后你会收到相应数量的成绩值(每行一个)。处理这些成绩,并给出全面的汇总。
要求:
- 读取第一个输入(成绩数量),去除空白字符,并将其解析为
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 在线编译器