Создайте массив с 10 элементами. Заполните его с помощью ГПСЧ. Попробуйте вывести четвертый, десятый, сотый или любой другой элемент, который вы не создавали. Почему при выходе за пределы массива мы получаем «мусор», а не нули?
Используйте созданный массив. Выведете среднее арифметическое значение элементов этого массива.
c++
#include <iostream>
#include <cstdlib> // для функции rand()
int main() {
const int size = 10;
int array[size];
for (int i = 0; i < size; i++) {
array[i] = rand();
}
// Выводим все элементы массива
for (int i = 0; i < size; i++) {
std::cout << "Элемент " << i << ": " << array[i] << std::endl;
}
return 0;
}
В этом примере мы создаем массив array с 10 элементами типа int. Затем, мы заполняем его с помощью функции rand(), которая возвращает псевдослучайное число. Выводим все элементы массива с помощью цикла for.
Перейдем к вопросу о выходе за пределы массива. В языке программирования C++ (и во многих других языках программирования) обращение к элементу массива с недопустимым индексом является неопределенным поведением. Это означает, что результат такого обращения не определен и может быть непредсказуемым. В нашем случае, когда мы обращаемся к элементу, которого в массиве нет, мы получаем «мусор» – то есть значение из памяти, которое не было явно установлено нами.
Когда массив создается, ему выделяется блок памяти достаточного размера для хранения всех его элементов. При обращении к элементам массива с помощью индексов, компьютер использует смещения, чтобы найти нужный элемент. Если индекс находится в пределах массива, то смещение будет правильным и мы получим доступ к нужной ячейке памяти. Однако, если мы обратимся к элементу, находящемуся за пределами массива, то смещение может указывать на другую ячейку памяти, которая не была выделена под наш массив. Использование значения из этой ячейки памяти приводит к «мусору», так как мы не можем предсказать, какие данные там будут храниться.
Чтобы избежать выхода за пределы массива и получения «мусора», всегда важно следить за правильностью обращений к элементам массива и убедиться, что индекс находится в допустимых пределах.
Теперь давайте посчитаем среднее арифметическое значение элементов созданного нами массива. Для этого нам необходимо просуммировать элементы массива и разделить полученную сумму на количество элементов:
c++
#include <iostream>
#include <cstdlib> // для функции rand()
int main() {
const int size = 10;
int array[size];
int sum = 0;
for (int i = 0; i < size; i++) {
array[i] = rand();
sum += array[i];
}
double average = static_cast<double>(sum) / size;
std::cout << "Среднее арифметическое значение элементов массива: " << average << std::endl;
return 0;
}
В этом примере мы добавили переменную sum, в которой будем хранить сумму элементов массива. В цикле for мы прибавляем каждый элемент массива к этой переменной. Затем, мы вычисляем среднее арифметическое значение, разделив сумму на количество элементов массива. Обратите внимание на использование static_cast<double>(sum) для преобразования значения sum в тип double перед делением. Это необходимо, чтобы получить значение с плавающей точкой (дробное число) в результате деления.
Вывод в консоль будет выглядеть примерно так:
Среднее арифметическое значение элементов массива: 1167744462.7
Таким образом, мы создали массив, заполнили его с помощью ГПСЧ, вывели несколько элементов и вычислили среднее арифметическое значение элементов массива с помощью цикла и простых математических операций.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет