/*
* @file lab3_2.c
* @author Герасимюк Д.В., гр. 515і1
* @date 26 березня 2024
* @brief Лабораторна робота №3, варіант 3
* Використання масивів. Завдання 2
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#include "sum.h"
#define MAX 100
int main() {
setlocale(LC_ALL, "Ukr");
int size;
int array[MAX];
printf("Введіть кількість елементів масиву (не більше %d): ", MAX);
scanf("%d", &size);
// Перевірка коректності введеного розміру
if (size <= 0 || size > MAX) {
printf("Некоректний розмір масиву.\n");
return 1;
}
printf("Оберіть метод введення елементів масиву:\n");
printf("1. Введення з клавіатури\n");
printf("2. Випадкові числа\n");
int input_choice;
scanf("%d", &input_choice);
if (input_choice == 1) {
// Введення з клавіатури
printf("Введіть елементи масиву:\n");
for (int i = 0; i < size; i++) {
printf("Елемент %d: ", i + 1);
scanf("%d", &array[i]);
}
}
else if (input_choice == 2) {
// Введення випадкових чисел
srand(time(NULL));
printf("Елементи масиву (випадкові числа):\n");
for (int i = 0; i < size; i++) {
array[i] = rand() % 101;
printf("%d ", array[i]);
}
printf("\n");
}
else {
printf("Некоректний вибір.\n");
return 1;
}
int result = SumDoLastPositive(array, size);
printf("Сума елементів до останнього додатного елемента: %d\n", result);
return 0;
}
/*
* @file sum.h
* @author Герасимюк Д.В., гр. 515і1
* @date 26 березня 2024
* @brief Лабораторна робота №3, варіант 3
* Використання масивів. Завдання 2
*/
#pragma once
int SumDoLastPositive(int array[], int size)
{
int sum = 0;
int last_positive = -1;
// індекс останнього додатного елемента
for (int i = size - 1; i >= 0; i--) {
if (array[i] > 0) {
last_positive = i;
break;
}
}
// обчислення суми
if (last_positive != -1) {
for (int i = 0; i < last_positive; i++) {
sum += array[i];
}
}
return sum;
}