まとめ:基本的なスコアトラッカー
CoddyのRustジャーニー「Logic & Flow」セクションの一部 — レッスン 14/66。
チャレンジ
簡単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);
}