Menu
Coddy logo textTech

一般的な配列操作

CoddyのRustジャーニー「Fundamentals」セクションの一部 — レッスン 68/75。

よく使われる配列操作は以下の通りです:

  • 配列内のすべての要素の合計を求めます:
let numbers = [1, 2, 3, 4, 5];
let mut sum = 0;
for number in &numbers {
    sum += number;
}
println!("Sum: {}", sum);
  • 配列内の要素の平均を求める:
let numbers = [1, 2, 3, 4, 5];
let mut sum = 0;
for number in &numbers {
    sum += number;
}
let average = sum as f64 / numbers.len() as f64;
println!("Average: {}", average);
  • 配列内の最大要素を見つける:
let numbers = [1, 5, 2, 9, 3];
let mut max = numbers[0];
for &number in &numbers[1..] {
    if number > max {
        max = number;
    }
}
println!("Max: {}", max);
  • 配列内の最小要素を見つける:
let numbers = [1, 5, 2, 9, 3];
let mut min = numbers[0];
for &number in &numbers[1..] {
    if number < min {
        min = number;
    }
}
println!("Min: {}", min);
challenge icon

チャレンジ

簡単

長さ8の整数の配列を引数として受け取り、以下の操作を実行するcalculate_statsという名前の関数を作成してください。

  1. 配列内のすべての要素の合計を計算します。
  2. 配列内の要素の平均を計算します。
  3. 配列内の最大要素を見つけます。
  4. 配列内の最小要素を見つけます。

関数は、合計、平均、最大値、最小値をこの順序で格納したdouble型の配列を返す必要があります。

チートシート

Rustにおける一般的な配列操作:

すべての要素の合計:

let numbers = [1, 2, 3, 4, 5];
let mut sum = 0;
for number in &numbers {
    sum += number;
}

要素の平均:

let numbers = [1, 2, 3, 4, 5];
let mut sum = 0;
for number in &numbers {
    sum += number;
}
let average = sum as f64 / numbers.len() as f64;

最大要素:

let numbers = [1, 5, 2, 9, 3];
let mut max = numbers[0];
for &number in &numbers[1..] {
    if number > max {
        max = number;
    }
}

最小要素:

let numbers = [1, 5, 2, 9, 3];
let mut min = numbers[0];
for &number in &numbers[1..] {
    if number < min {
        min = number;
    }
}

自分で試してみよう

use std::io;
use std::convert::TryInto;

fn calculate_stats(arr: [i32; 8]) -> [f64; 4] {
    // ここにコードを書いてください
    
    
}

fn main() {
    let mut input_str_arr = String::new();
    io::stdin().read_line(&mut input_str_arr).unwrap();
    let numbers: [i32; 8] = input_str_arr.split(',').map(|s| s.parse::<i32>().unwrap()).collect::<Vec<i32>>().try_into().unwrap();
    let stats = calculate_stats(numbers);
    println!("Sum: {}", stats[0]);
    println!("Average: {}", stats[1]);
    println!("Maximum: {}", stats[2]);
    println!("Minimum: {}", stats[3]);
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン