Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Заполнение массива случайными числами
Пусть требуется заполнить массив равномерно распределенными случайными числами в интервале [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];
|