Quick actions

cmd+k|ctrl+k

Navigation

Languages

Lab_3_2, 515i, Darchuk Hlib Serhiyovic

Snippet info

Language

C

Visibility

public

Author

h.s.darchuk

Created

2025-04-24T22:50:23.949181Z

Updated

2025-04-24T22:50:43.676386Z

/*
* @file Lab_3_1.c
* @author Дарчук Г.С., 515i
* @date 24.04.2025
* @brief Лабораторна робота №3, варіант 22
*
* Використання масивів. Завдання 2
*/


#include <stdio.h>
#include <stdlib.h>

void write_by_keyboard(int arr[], unsigned int size)
{
    for (int i = 0; i < size; i++)
    {
        printf("Введіть %d-й елемент масиву:", i);
        scanf("%d", &arr[i]);
    }
}

void write_by_random(int arr[], unsigned int size)
{
    for (int i = 0; i < size; i++) arr[i] = rand();
}

int minimalNumberIndexFind(int arr[], unsigned int size)
{
    int min = arr[0];
    int minIndex = 0;
    for (int i = 1; i < size; i++)
        if (arr[i] < min)
        {
            min = arr[i];
            minIndex = i;
        }
    return minIndex;
}

int oddSumBeforeMinimal(int arr[], int min)
{
    int sum = 0;
    for (int i  = 1; i < min; i += 2) sum += arr[i];
    return sum;
}

void writeMinimalNumIndex(int arr[], int minIndex)
{
    printf("Мінімальне число массиву: %d\n", arr[minIndex]);
    printf("Індекс мінімального числа масиву: %d\n", minIndex);
}

void writeArray(int arr[], unsigned int size)
{
    for (int i = 0; i < size; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main()
{
    unsigned int N;
    int choice;
    printf("Введіть кількість елементів масиву: ");
    scanf("%d", &N);
    if (N > 100)
    {
        printf("Помилка: кількість елементів масиву не може бути більшим за 100\n");
        return 1;
    }
    int* numberArr = (int*)malloc(N * sizeof(int));
    printf("Ввести елементи масиву з клавіатури (введіть 0) чи випадковим чином (введіть 1): ");
    scanf("%d", &choice);
    if (choice == 0) write_by_keyboard(numberArr, N);
    else if (choice == 1) write_by_random(numberArr, N);
    else
    {
        printf("Помилка: Введено інше число!\n");
        return 1;
    }
    printf("Вигляд введеноного масива: ");
    writeArray(numberArr, N);
    int minimalNumberIndex = minimalNumberIndexFind(numberArr, N);
    writeMinimalNumIndex(numberArr, minimalNumberIndex);
    if (minimalNumberIndex == 0 || minimalNumberIndex == 1)
    {
        printf("Перше або число є мінімальним! Розрахунок неможливий!\n");
        return 1;
    }
    else printf("Сума елементів масиву с непарними індексами, що знаходяться до мінімального елемента: %d\n", oddSumBeforeMinimal(numberArr, minimalNumberIndex));
    return 0;
}
INFO