/*
* @file lab3_2.cpp
* @author Гавалян Д.Є, гр. 515і
* @date 5 квітня 2025
* @brief Лабораторна робота № 3, варіант 19
*
* Використання масивів. Завдання 2
*/
#include <stdio.h>
#include <locale.h>
#include "module.h"
int main() {
setlocale(LC_ALL, "Ukr");
int arr[MAX_SIZE];
int n, choice;
printf("Введiть кiлькiсть елементiв (до 100): ");
scanf("%d", &n);
if (n <= 0 || n > MAX_SIZE) {
printf("Неправильне значення!\n");
return 1;
}
printf("Оберiть спосiб заповнення масиву:\n");
printf("1 - Ввести вручну\n");
printf("2 - Заповнити випадковими числами\n");
scanf("%d", &choice);
if (choice == 1)
inputArray(arr, n);
else
randomArray(arr, n);
printArray(arr, n);
int result = sumAfterLastOdd(arr, n);
printf("Сума модулiв пiсля останнього непарного: %d\n", result);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include "module.h"
// Заповнення масиву з клавіатури
void inputArray(int arr[], int n) {
printf("Введіть %d елементів:\n", n);
for (int i = 0; i < n; i++) {
printf("arr[%d] = ", i);
scanf("%d", &arr[i]);
}
}
// "випадкові" числа
void randomArray(int arr[], int n) {
for (int i = 0; i < n; i++) {
arr[i] = rand() % 21 - 10; // діапазон від -10 до 10
}
}
// Вивід масиву
void printArray(int arr[], int n) {
printf("Масив: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
// Обчислення суми модулів після останнього непарного числа
int sumAfterLastOdd(int arr[], int n) {
int lastOddIndex = -1;
for (int i = n - 1; i >= 0; i--) {
if (arr[i] % 2 != 0) {
lastOddIndex = i;
break;
}
}
if (lastOddIndex == -1 || lastOddIndex == n - 1)
return 0;
int sum = 0;
for (int i = lastOddIndex + 1; i < n; i++) {
if (arr[i] < 0)
sum += -arr[i];
else
sum += arr[i];
}
return sum;
}
#ifndef MODULE_H
#define MODULE_H
#define MAX_SIZE 100
void inputArray(int arr[], int n);
void randomArray(int arr[], int n);
void printArray(int arr[], int n);
int sumAfterLastOdd(int arr[], int n);
#endif