Menu
CoddyTech

Ôn tập: Bộ theo dõi điểm số cơ bản

Thuộc phần Logic và luồng chương trình trong hành trình Rust của Coddy. Bài học 14 trên 66.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận hai đầu vào: đầu tiên là danh sách điểm được phân tách bằng dấu phẩy, tiếp theo là điểm cần thêm. Hãy tạo một vector từ các điểm ban đầu, thêm điểm mới, tính điểm trung bình của tất cả điểm và in kết quả.

Yêu cầu:

  • Đọc đầu vào thứ nhất chứa các điểm được phân tách bằng dấu phẩy (ví dụ: 85,92,78)
  • Tách chuỗi bằng dấu phẩy và xóa khoảng trắng ở đầu và cuối từng token trước khi chuyển thành số nguyên (ví dụ: dùng .trim() trên từng phần tử sau khi tách)
  • Tạo một vector có thể thay đổi từ các điểm này
  • Đọc đầu vào thứ hai và chuyển thành số nguyên (xóa khoảng trắng trước)
  • Dùng .push() để thêm điểm mới vào vector
  • Tính điểm trung bình của tất cả điểm trong vector
  • In tổng số điểm
  • In điểm trung bình (dưới dạng số nguyên)

Đầu vào:

  • Dòng thứ nhất: Các số nguyên được phân tách bằng dấu phẩy, biểu thị các điểm ban đầu (ví dụ: 85,92,78)
  • Dòng thứ hai: Một số nguyên biểu thị điểm mới cần thêm

Đầu ra:

  • Dòng thứ nhất: Tổng số điểm
  • Dòng thứ hai: Điểm trung bình (dưới dạng số nguyên, đã cắt phần thập phân)

Lưu ý: Luôn gọi .trim() trên toàn bộ dòng đầu vào và trên từng token điểm sau khi tách bằng dấu phẩy. Chuỗi đầu vào có thể chứa khoảng trắng hoặc ký tự xuống dòng vô hình, khiến chương trình gặp lỗi khi phân tích nếu không xóa chúng.

Tự làm thử

use std::io;

fn main() {
    // Đọc các điểm số được phân tách bằng dấu phẩy
    let mut scores_input = String::new();
    io::stdin().read_line(&mut scores_input).expect("Failed to read line");
    
    // Đọc điểm số mới cần thêm
    let mut new_score_input = String::new();
    io::stdin().read_line(&mut new_score_input).expect("Failed to read line");
    
    // TODO: Viết code của bạn bên dưới
    // 1. Tách scores_input theo dấu phẩy và chuyển thành các số nguyên
    // 2. Tạo một vector có thể thay đổi từ các điểm số này
    // 3. Chuyển new_score_input thành số nguyên
    // 4. Push điểm số mới vào vector
    // 5. Tính trung bình của tất cả điểm số
    
    // In ra tổng số điểm số
    // println!("{}", total_scores);
    
    // In ra điểm số trung bình
    // println!("{}", average);
}

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Rust online