/**
* @file lab3_2.c
* @author Нездоймишапка А.О., гр. 515
* @date 03 березня 2023
* @brief Лабораторна робота № 3
*
* Використання масивів. Завдання 2
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
// Прототип функції
int sum_positive_elements_before_max(const int array[], int n);
int main() {
setlocale(LC_ALL, "ukr");
int n;
int array[100];
int choice;
printf("Введіть кількість елементів масиву (макс. 100): ");
if (scanf("%d", &n) != 1 || n <= 0 || n > 100) {
printf("Неправильне значення n!\n");
return 1;
}
printf("Виберіть спосіб заповнення масиву:\n");
printf("1 - Ввести з клавіатури\n");
printf("2 - Заповнити випадковими числами\n");
if (scanf("%d", &choice) != 1 || (choice != 1 && choice != 2)) {
printf("Неправильний вибір!\n");
return 1;
}
if (choice == 1) {
printf("Введіть %d елементів масиву:\n", n);
for (int i = 0; i < n; ++i) {
if (scanf("%d", &array[i]) != 1) {
printf("Неправильне значення!\n");
return 1;
}
}
}
else {
srand((unsigned int)time(NULL));
printf("Масив заповнено випадковими числами:\n");
for (int i = 0; i < n; ++i) {
array[i] = rand() % 200 - 100; // Генерування чисел від -100 до 99
printf("%d ", array[i]);
}
printf("\n");
}
int result = sum_positive_elements_before_max(array, n);
printf("Сума додатних елементів до максимального елемента: %d\n", result);
return 0;
}
int sum_positive_elements_before_max(const int array[], int n) {
int max_index = 0;
// Знайдіть індекс максимального елемента
for (int i = 1; i < n; ++i) {
if (array[i] > array[max_index]) {
max_index = i;
}
}
int sum = 0;
// Обчисліть суму додатних елементів перед максимальним елементом
for (int i = 0; i < max_index; ++i) {
if (array[i] > 0) {
sum += array[i];
}
}
return sum;
}