/**
* @file main.c
* @author Мосяж А.М., гр. 515б
* @date 26 квітня 2023
* @brief Лабораторна робота № 3, варіант 4
* Робота з масивами Завдання 2
*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int sum_between_positive(int a[], int n, int*);
int main()
{
setlocale(LC_ALL, "Ukr");
int n, i, first_positive = -1, last_positive = -1;
int a[100];
printf("Введiть кiлькiсть елементiв масиву (не бiльше 100): ");
scanf("%d", &n);
printf("Заповнити масив випадковими числами? (0 - нi, 1 - так): ");
int is_random;
scanf("%d", &is_random);
if (is_random)
{
for (i = 0; i < n; i++)
{
a[i] = rand() % 100 - 50;
printf("%d ", a[i]);
}
}
else
{
printf("Введiть елементи масиву:\n");
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
}
int sum;
if (sum_between_positive(a, n, &sum))
printf("\nСума елементiв мiж першим та останнiм додатними елементами: %d\n",
sum);
else
printf("В масивi менше двох додатнiх - суму знайти неможливо");
return 0;
}
int sum_between_positive(int a[], int n, int* sum)
{
int i, first_positive = -1, last_positive = -1;
// Пошук першого і останнього додатного елемента
for (i = 0; i < n; i++)
{
if (a[i] > 0)
{
if (first_positive == -1)
{
first_positive = i;
}
last_positive = i;
}
}
if (first_positive == -1 || last_positive == -1)
{
// Якщо у масиві немає додатніх елементів
return 0;
}
else
{
// Розрахунок суми елементів між першим і останнім додатним елементом
*sum = 0;
for (i = first_positive + 1; i < last_positive; i++)
{
*sum += a[i];
}
return 1;
}
}