Go: обход массива [7]int и возврат среза []int
Сводка температур за неделю
Метеорологический журнал давно стал привычным инструментом для тех, кто хочет понять, каким выдался минувший отрезок времени. Семь дней подряд фиксируются показания термометра, и к концу недели набирается полный ряд цифр, каждая из которых отражает один конкретный день — без пропусков и без перестановок.
Когда неделя закрыта, возникает естественное желание подвести итог: не листать записи поочерёдно, а получить единую картину. Для этого нужно выяснить, какой день оказался самым холодным, какой — самым тёплым, и насколько типичной была температура в целом. Именно эти три ориентира дают ощущение недели как единого целого.
Программа последовательно проходит по всем семи значениям, не исключая ни одного, и определяет среди них наименьшее и наибольшее. Затем она вычисляет среднее по всей семёрке, представляя его целым числом. На выходе пользователь видит минимум, максимум и среднее — лаконичную сводку, которая в трёх числах описывает прошедшую неделю.
Что нужно сделать
Реализуйте функцию WeeklyTemperatureSummary(temperatures [7]int) []int. Она должна обойти все семь элементов массива и вернуть срез из трёх чисел в строгом порядке: минимальная температура, максимальная температура, целое среднее. Среднее вычисляется обычным целочисленным делением суммы на 7.
Ввод и вывод
Функция получает один массив ровно из семи целых чисел. Она возвращает срез [минимум, максимум, среднее]. Читать stdin и печатать результат не нужно.
Пример
WeeklyTemperatureSummary([7]int{-3, 1, 4, 2, 0, 5, -2}) возвращает []int{-3, 5, 1}.
Пример
- Ввод
[[-3,1,4,2,0,5,-2]]
- Вывод
[-3,5,1]
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- Go for и continue: пропуск чётных чисел в цикле
- Go append и базовый массив: почему меняется исходный срез
- Как проверить наличие ключа в map Go: value, ok и delete
- Go fmt.Sprintf: форматирование строки и числа с двумя знаками
- Go if и switch: несколько значений в одной ветке
- Go strings.Split и strconv.ParseFloat: сумма чисел в строке
