Menu
Coddy logo textTech

まとめ:基本的なスコアトラッカー

CoddyのRustジャーニー「Logic & Flow」セクションの一部 — レッスン 14/66。

challenge icon

チャレンジ

簡単

2つの入力を受け取ります。1つ目はカンマ区切りのテストスコアのリスト、2つ目は追加するスコアです。初期スコアからベクタ(vector)を作成し、新しいスコアを追加して、全スコアの平均を計算し、結果を出力してください。

要件:

  • カンマ区切りのスコアを含む最初の入力を読み取ります(例: 85,92,78
  • 文字列をカンマで分割し、整数に変換する前に個々のトークンをトリム(trim)します(例: 分割後の各要素に対して .trim() を使用します)
  • これらのスコアから可変(mutable)なベクタを作成します
  • 2番目の入力を読み取り、整数に変換します(最初にトリムしてください)
  • .push() を使用して、新しいスコアをベクタに追加します
  • ベクタ内の全スコアの平均を計算します
  • スコアの総数を出力します
  • 平均スコアを(整数として)出力します

入力:

  • 1行目: 初期スコアを表すカンマ区切りの整数(例: 85,92,78
  • 2行目: 追加する新しいスコアを表す整数

出力:

  • 1行目: スコアの総数
  • 2行目: 平均スコア(整数として切り捨て)

注意: 入力行全体に対して、およびカンマで分割した後の個々のスコアトークンに対して、常に .trim() を呼び出してください。入力文字列には、削除しないとパース時にパニックを引き起こす可能性のある、目に見えない空白や改行文字が含まれている場合があります。

自分で試してみよう

use std::io;

fn main() {
    // カンマ区切りのスコアを読み込む
    let mut scores_input = String::new();
    io::stdin().read_line(&mut scores_input).expect("Failed to read line");
    
    // 追加する新しいスコアを読み込む
    let mut new_score_input = String::new();
    io::stdin().read_line(&mut new_score_input).expect("Failed to read line");
    
    // TODO: 以下にコードを記述してください
    // 1. scores_inputをカンマで分割し、整数に変換する
    // 2. これらのスコアから可変ベクトルを作成する
    // 3. new_score_inputを整数に変換する
    // 4. 新しいスコアをベクトルに追加する
    // 5. すべてのスコアの平均を計算する
    
    // スコアの総数を出力する
    // println!("{}", total_scores);
    
    // 平均スコアを出力する
    // println!("{}", average);
}

Logic & Flowのすべてのレッスン