Основные операции с массивами
Часть раздела Основы путешествия по C++ на Coddy — урок 66 из 74.
Вот некоторые распространенные операции с массивами:
- Найдите сумму всех элементов в массиве:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
sum += number;
}
std::cout << "Sum: " << sum;- Найдите среднее значение элементов в массиве:
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
sum += number;
}
double average = sum / std::size(numbers);
std::cout << "Average: " << average;- Найдите максимальный элемент в массиве:
int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
std::cout << "Max: " << max;- Найдите минимальный элемент в массиве:
int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}
std::cout << "Min: " << min;Задание
ЛегкоСоздайте функцию с именем calculateStats, которая принимает массив чисел типа double и размер массива в качестве входных данных и выполняет следующие операции:
- Вычисляет сумму всех элементов в массиве.
- Вычисляет среднее арифметическое элементов в массиве.
- Находит максимальный элемент в массиве.
- Находит минимальный элемент в массиве.
Функция должна возвращать массив чисел типа double, содержащий сумму, среднее значение, максимум и минимум именно в таком порядке.
Важные примечания:
- Используйте параметр
sizeдля управления циклом — не используйтеstd::size(). - Чтобы инициализировать
maxиmin, установите их равнымиarr[0]— это работает правильно, даже если массив содержит только отрицательные числа. - Предварительно написанный код в
main()уже выделяет динамический массив с помощьюnewи освобождает его с помощьюdelete[]— вам нужно только выделить результирующий массив внутри вашей функции, используяnew double[4], и вернуть его.
Рекомендуемый подход:
- Инициализируйте
sum = 0,max = arr[0]иmin = arr[0]. - Запустите цикл от
i = 0доi < size, накапливая сумму и обновляя max/min по мере необходимости. - Вычислите среднее значение как
sum / size. - Выделите новый массив с помощью
new double[4], сохраните четыре результата по порядку и верните его.
Шпаргалка
Общие операции с массивами в C++:
Сумма всех элементов:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
sum += number;
}Среднее арифметическое элементов:
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
sum += number;
}
double average = sum / std::size(numbers);Максимальный элемент:
int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}Минимальный элемент:
int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}Попробуйте сами
#include <iostream>
double* calculateStats(double arr[], int size) {
// Вам нужно будет вычислить 4 значения перед их сохранением в newArr
// Инициализируйте переменные для суммы (начните с 0), максимума и минимума (обе начинаются с arr[0])
// Используйте цикл for для итерации по массиву
// Внутри цикла:
// - Добавляйте каждый элемент к сумме
// - Сравнивайте каждый элемент с максимумом и обновляйте, если он больше
// - Сравнивайте каждый элемент с минимумом и обновляйте, если он меньше
// Вычислите среднее значение = sum / size (после цикла)
double* newArr = new double[4];
newArr[0] = sum;
newArr[1] = average;
newArr[2] = max;
newArr[3] = min;
return newArr;
}
int main() {
int n;
std::cin >> n;
std::cin.ignore();
double arr[n];
for (int i = 0; i < n; i++) {
double val;
std::cin >> val;
arr[i] = val;
}
double* stats = calculateStats(arr, n);
std::cout << "Sum: " << stats[0] << std::endl;
std::cout << "Average: " << stats[1] << std::endl;
std::cout << "Maximum: " << stats[2] << std::endl;
std::cout << "Minimum: " << stats[3] << std::endl;
delete[] stats;
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент и декрементПостфиксный инкремент и декрементСокращенные арифметические операцииОператоры сравненияСравнение строк7Основы ввода-вывода
Оператор coutОператор cinВвод строкПовторение — До 120Повторение — Истина или ложь3Переменные. Часть 2
Объявление типовСоглашения об именованииПовторение: инициализация переменныхПриведение типов. Часть 1Приведение типов. Часть 26Принятие решений
Оператор ifКонструкция if - elseОператор switchУсловный операторПовторение: if - elseВложенный if - else