Menu
Coddy logo textTech

요약 - 성적 요약기

Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 66번째.

challenge icon

챌린지

쉬움

학생 성적을 나타내는 여러 입력을 받게 됩니다. 첫 번째 입력은 다음에 이어질 성적의 개수를 나타내는 숫자입니다. 그 다음 해당 개수만큼의 성적 값(한 줄에 하나씩)을 받게 됩니다. 이 성적들을 처리하여 종합적인 요약 정보를 제공하세요.

요구 사항:

  • 첫 번째 입력(성적의 개수)을 읽고, 공백을 제거한 후 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);
}

Logic & Flow의 모든 레슨