Menu
Coddy logo textTech

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

CoddyのRustジャーニー「論理とフロー」セクションの一部。レッスン 14/66。

challenge icon

チャレンジ

簡単

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

要件:

  • カンマ区切りのスコアを含む1つ目の入力を読み取る(例: 85,92,78
  • 文字列をカンマで分割し、整数に変換する前に各トークンを個別にトリミングする(例: 分割後の各要素に対して.trim()を使用する)
  • これらのスコアから可変ベクターを作成する
  • 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);
}

論理とフローのすべてのレッスン

自分で練習してみよう: Rustオンラインコンパイラ