Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Заполнение массива случайными числами






Пусть требуется заполнить массив равномерно распределенными случайными числами в интервале [a, b]. Поскольку для целых и вещественных чисел способы вычисления случайного числа в заданном интервале отличаются, рассмотрим оба варианта. Здесь и далее предполагается, что в начале программы есть строчка

const int n = 10;

Описание функции-датчика случайных чисел находится в заголовочном файле stdlib.h.

Удобно также добавить в свою программу функцию random:

int random (int N) { return rand() % N; }

которая выдает случайные числа с равномерным распределением в интервале [0, N-1]. Для получения случайных чисел с равномерным распределением в интервале [a, b] надо использовать формулу

k = random (b – a + 1) + a;

Для вещественных чисел формула несколько другая:

x = rand()*(b - a)/RAND_MAX + a;

Здесь константа RAND_MAX – это максимальное случайное число, которое выдает стандартная функция rand.

В приведенном ниже примере массив A заполняется случайными целыми числами в интервале [-5, 10], а массив X – случайными вещественными числами в том же интервале.

const int n=10;

float x[n];

int i, A[n], a=-5, b=10;;

randomize(); // инициализация генератора случайных чисел

for (i=0; i< n; i++)

A[i]=random(b-a+1)+a; // каждому элементу массива

// присваивает некоторое случайное значение

for (i=0; i< n; i++)

x[i]=(float)rand()*(b-a)/RAND_MAX+a;

Если необходимо, чтобы числа были не только положительными, но и отрицательными, можно записать, например, так:

array[i]=20 – random (100);

Вывод элементов массива

1. Вывод элементов массива в одну строку экрана:

const int n=5;

float array[n];

int i;

for (i=0; i< n; i++)

printf(“%f \t”, array[i]); // \t – табуляция

Для вывода элементов массива в один столбец экрана в функции printf нужно заменить \t на \n – переход на новую строку экрана.

Операция sizeof

С помощью операции sizeof() можно определить размер памяти, которая соответствует идентификатору или типу. Операция sizeof() имеет следующий формат:

sizeof (выражение);

В качестве выражения может быть использован любой идентификатор либо имя типа. Если в качестве выражения указано имя массива, то результатом является размер всего массива (т. е. произведение числа элементов на длину типа).

printf(“%d \n”, sizeof (array));

Суммирование элементов массива

S=0;

for (i=0; i< n; i++)

S=S+a[i];

Удаление элемента из массива

Требуется удалить k-й элемент из массива A размером N. Удалить элемент, расположенный на k-м месте в массиве, можно, сдвинув весь «хвост» массива, начиная с (k+1)-го элемента, на одну позицию влево, т. е. выполняя операции Ai=Ai+1, i=k, k+1, …, N-1.

for (i=k; i< n; i++)

A[i]=A[i+1];






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.