Умножение ненулевых элементов массива - C (СИ)
Формулировка задачи:
Дано одномерный массив, что состоит c N действителных элементов
-Заполнить массив рандомными числами
-Найти минималный позитивный элемент
- Вычислить умножение не нулевых элементов массива
-Вывести не нулевые элементы на экран в обратном порядке
Решение задачи: «Умножение ненулевых элементов массива»
textual
Листинг программы
#include <stdio.h>
#include <time.h>
#include <Windows.h>
#define N 10
#define LOW_BORDER -100
#define HIGH_BORDER 100
int main(int argc, char *argv[])
{
srand(time(NULL));
int arr[N], min, i, Product = 1;
int temp_element = 0;
printf("Randomly generated array of %d elements:\n", N);
for (i = 0; i < N; i++) {
arr[i] = rand() % (HIGH_BORDER + 1 - LOW_BORDER) + LOW_BORDER;
printf("%2d ", arr[i]);
if (arr[i] > 0) min = arr[i];
}
for (i = 0; i < N; i++) {
if (arr[i] > 0) {
if(arr[i] < min) {
min = arr[i];
}
}
if (arr[i] != 0) {
Product *= arr[i];
}
}
printf("\n\n\nNon zero elements in a reverse order\n");
for (i = N-1; i >= 0; i--) {
if (arr[i] != 0)
printf("%2d ", arr[i]);
}
printf("\n\nThe product is equal: %d\n", Product);
printf("\n\nThe minimal positive element: %d\n", min);
system("pause");
return 0;
}
Объяснение кода листинга программы
В этом коде происходит следующее:
- Сгенерируйте случайный массив целых чисел в диапазоне от -100 до 100 с помощью функции
rand(). - Найдите минимальный ненулевой элемент массива, которым занимается переменная
min. - Умножьте все ненулевые элементы массива, используя переменную
Product. - Выведите массив в обратном порядке, показывая только ненулевые элементы.
- Выведите произведение всех ненулевых элементов массива.
- Выведите минимальный ненулевой элемент массива.
- Подождите, пока пользователь не нажмет любую клавишу, чтобы остановить программу. Вот список переменных и их значений:
arr- массив из 10 целых чисел.min- минимальный ненулевой элемент массива.i- счетчик для двух циклов.Product- произведение всех ненулевых элементов массива.temp_element- временный элемент, используемый в процессе поиска минимального ненулевого элемента.N- количество элементов в массиве.LOW_BORDERиHIGH_BORDER- границы диапазона случайных чисел.time(NULL)- текущее время, используемое для инициализации генератора случайных чисел.srand(time(NULL))- инициализация генератора случайных чисел с использованием текущего времени.printf- функция для вывода информации на консоль.system(pause)- приостановка программы до нажатия клавиши пользователем.return 0- завершение программы.