Итоги — Простой счетчик очков
Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 14 из 66.
Задание
ЛегкоВы получите два входных значения: во-первых, список результатов тестов, разделенных запятыми, и во-вторых, результат, который нужно добавить. Создайте вектор из начальных результатов, добавьте новый результат, вычислите среднее арифметическое всех результатов и выведите полученные данные.
Требования:
- Прочитайте первую строку ввода, содержащую результаты, разделенные запятыми (например,
85,92,78) - Разделите строку по запятым и обрежьте (trim) каждый отдельный токен перед преобразованием в целое число (например, используйте
.trim()для каждого элемента после разделения) - Создайте изменяемый вектор из этих результатов
- Прочитайте вторую строку ввода и преобразуйте ее в целое число (предварительно применив trim)
- Используйте
.push(), чтобы добавить новый результат в вектор - Вычислите среднее арифметическое всех результатов в векторе
- Выведите общее количество результатов
- Выведите средний балл (как целое число)
Ввод:
- Первая строка: Целые числа, разделенные запятыми, представляющие начальные результаты (например,
85,92,78) - Вторая строка: Целое число, представляющее новый результат для добавления
Вывод:
- Первая строка: Общее количество результатов
- Вторая строка: Средний балл (как целое число, с отбрасыванием дробной части)
Примечание: Всегда вызывайте .trim() для всей строки ввода и для каждого отдельного токена результата после разделения запятой. Входные строки могут содержать невидимые пробелы или символы новой строки, которые вызовут ошибку (panic) при парсинге, если их не удалить.
Попробуйте сами
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
1Продвинутое управление потоком выполнения
Выражение 'match'Сопоставление нескольких значенийСопоставление диапазоновВыражение 'if let'Циклы как выраженияИтоги — Простой парсер команд4Группировка данных с помощью структур
Что такое структура?Обзор структурДоступ к полям структурыИзменяемые структурыСтруктуры как параметры функцийКортежные структурыИтоги: создание структуры Book7Обработка ошибок с помощью 'Result'
Что такое 'Result'?Использование 'match' с 'Result'is_ok() и is_err()Сокращения: unwrap и expectОператор вопросительного знака '?'Парсинг строк в числаИтоги: функция безопасного деления10Замыкания и анонимные функции
Что такое замыкание?Определение простого замыканияЗамыкания с параметрамиЗахват окруженияИтоги: Простое замыкание-сумматор2Введение в векторы
Что такое вектор?Создание вектораДобавление элементов с помощью pushДоступ к элементам вектораИтерация по векторуИзменяемая итерацияУдаление элементовИтоги — Простой счетчик очков5Пары «ключ-значение» в Hash Map
Что такое Hash Map?Создание Hash MapВставка пар «ключ-значение»Доступ к значениямИтерация по Hash MapОбновление значенияУдаление парыИтоги — Счетчик слов8Проект: Простой инвентарь товаров
Настройка проектаДобавление товараПроверка наличияПродажа товараСобираем всё воедино3Список дел в командной строке
Настройка проектаДобавление задачиПросмотр всех задачУдаление задачиИтоговый код6Обработка отсутствия значения с 'Option'
Что такое 'Option'?Использование 'match' с 'Option'is_some() и is_none()Распаковка 'Option'Метод expectЗначение по умолчанию: unwrap_orИтоги: поиск элемента