/*
* @file lab5_2.c
* @author Герасимюк Д.В., гр. 515і1
* @date 16 квітня 2024
* @brief Лабораторна робота №5, варіант 3
* Застосування вказівників. Завдання 2
*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <locale.h>
#include "function.h"
int main() {
setlocale(LC_ALL, "ukr");
int arr[100];
int size;
printf("Введiть розмiр масиву: ");
scanf("%d", &size);
if (size < 0) {
printf("Помилка! Некоректний розмiр масиву\n");
return 0;
}
printf("Введiть елементи масиву:\n");
for (int i = 0; i < size; i++) {
printf("Елемент %d: ", i + 1);
scanf("%d", &arr[i]);
}
int min;
float average;
find_min_and_average(arr, size, &min, &average);
printf("Мiнiмальний елемент: %d\n", min);
printf("Cереднє значення: %.2f\n", average);
return 0;
}
/*
* @file function.h
* @author Герасимюк Д.В., гр. 515і1
* @date 16 квітня 2024
* @brief Лабораторна робота №5, варіант 3
* Застосування вказівників. Завдання 2
*/
#pragma once
#include <stdio.h>
/*
* @brief знаходження мінімального елементу масиву та середнього значення.
*
* @param arr Вказівник на початок масиву.
* @param size Розмір масиву.
* @param min Вказівник - мінімальний елемент масиву.
* @param average Вказівник - середнє значення усіх елементів масиву.
*/
void find_min_and_average(const int* arr, int size, int* min, float* average)
{
*min = *arr;
int sum = 0;
// сума всіх елементів
const int* ptr = arr;
for (int i = 0; i < size; i++)
{
sum += *ptr;
ptr++;
}
// середнє значення
*average = (float)sum / size;
// мінімальний елемент
ptr = arr;
for (int i = 1; i < size; i++)
{
if (*(ptr + i) < *min)
{
*min = *(ptr + i);
}
}
}