요약 - 성적 요약기
Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 66번째.
챌린지
쉬움학생 성적을 나타내는 여러 입력을 받게 됩니다. 첫 번째 입력은 다음에 이어질 성적의 개수를 나타내는 숫자입니다. 그 다음 해당 개수만큼의 성적 값(한 줄에 하나씩)을 받게 됩니다. 이 성적들을 처리하여 종합적인 요약 정보를 제공하세요.
요구 사항:
- 첫 번째 입력(성적의 개수)을 읽고, 공백을 제거한 후
i32타입으로 파싱합니다. - 성적을 저장할 빈 벡터를 생성합니다.
- 루프를 사용하여 각 성적을 읽고, 공백을 제거한 후
i32타입으로 파싱하여 벡터에 추가합니다. - 평균 성적(모든 성적의 합을 개수로 나눈 값)을 계산합니다.
- 벡터에서 가장 높은 성적을 찾습니다.
- 벡터에서 가장 낮은 성적을 찾습니다.
- 통과한 성적(70점 이상)의 개수를 셉니다.
- 낙제한 성적(70점 미만)의 개수를 셉니다.
- 결과를 아래에 표시된 정확한 형식으로 출력합니다.
출력 형식:
- Line 1:
Average: X(여기서 X는 정수 형태의 평균입니다) - Line 2:
Highest: X(여기서 X는 최고 성적입니다) - Line 3:
Lowest: X(여기서 X는 최저 성적입니다) - Line 4:
Passing: X(여기서 X는 통과한 성적의 개수입니다) - Line 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);
}