Menu
Coddy logo textTech

Основные операции с массивами

Часть раздела Fundamentals путешествия по Rust на Coddy — урок 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

Задание

Легко

Создайте функцию с именем calculate_stats, которая принимает массив целых чисел длиной 8 в качестве входных данных и выполняет следующие операции:

  1. Вычисляет сумму всех элементов массива.
  2. Вычисляет среднее значение элементов массива.
  3. Находит максимальный элемент в массиве.
  4. Находит минимальный элемент в массиве.

Функция должна возвращать массив чисел с плавающей запятой (doubles), содержащий сумму, среднее значение, максимум и минимум именно в таком порядке.

Шпаргалка

Общие операции с массивами в 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