Quick actions

cmd+k|ctrl+k

Navigation

Languages

lb3_2

Snippet info

Language

C

Visibility

public

Author

amos11520

Created

2023-05-10T18:50:17.332101Z

Updated

2023-05-10T18:50:17.332101Z

/**
* @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;
    }
}
INFO