/**
* @file lab3_task2.c
* @author Зайченко Д.i., гр. 515i
* @date 04 квiтня 2023
* @brief Лабораторна робота No 3
*
* Використання масивiв. Завдання 2
*/
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#define N 100
long long product_func(int max_i,int min_i,int array[]);
int main() {
setlocale(LC_ALL, "Ukr");
int n, input, array[100], max = -32768, min = 32767, min_i, max_i;
printf("Введiть розмiр масиву вiд 2 до 100: ");
scanf("%d", &n);
if (n > N || n < 2) {
printf("Введено некоректний розмiр масиву");
return 0;
}
printf("Масив складатиметься з %d елементiв\n", n);
printf("Виберiть варiант введення масиву: \n1 - з клавiатури \n2 - випадкове генерування\nВведiть 1 або 2: ");
scanf("%d", &input);
if (input == 1) {
//заповнення з клавiатури
for (int i = 0; i < n; i++) {
printf("Введiть число номер %d: ", i + 1);
scanf("%d", &array[i]);
if (array[i] >= max) {
max = array[i];
max_i = i;
}
if (array[i] <= min) {
min = array[i];
min_i = i;
}
}
}
//заповнення функцiєю rand()
else if (input == 2) {
srand(time(0));
for (int i = 0; i < n; i++) {
array[i] = ((rand() * 2) - RAND_MAX) % 100;
if (array[i] >= max) {
max = array[i];
max_i = i;
}
if (array[i] <= min) {
min = array[i];
min_i = i;
}
}
}
else {
printf("Некоректне введення");
return 0;
}
//виведення масиву
printf("\nВаш масив:\n");
for (int i = 0; i < n; i++) {
printf(" %d\t", array[i]);
if ((i + 1) % 10 == 0)
printf("\n");
}
printf("\nМаксимальний елемент: %d \nМiнiмальний елемент: %d", max, min);
printf("\nДобуток елементiв масиву мiж максимальним i мiнiмальним елементами: %lld", product_func(max_i,min_i,array));
}
//добуток всiх чисел мiж максимальним i мiнiмальним елементами
long long product_func(int max_i,int min_i, int array[]) {
long long product = 1;
int check = 1;
if (max_i < min_i) {
for (int i = max_i + 1; i < min_i; i++) {
product *= array[i];
check=0;
}
}
else {
for (int i = min_i + 1; i < max_i; i++) {
product *= array[i];
check=0;
}
}
if (check)
product = 0;
return product;
}