ГАВАЛЯН 515-і lab5_2

Run Settings
LanguageC
Language Version
Run Command
/* * @file lab5_2.cpp * @author Гавалян Д.Є, гр. 515i * @date 07 травня 2025 * @brief Лабораторна робота № 5, варiант 19 * * Застосування вказiвникiв.Завдання 2 */ #include <stdio.h> #include "module.h" #include <locale.h> #include <stdlib.h> #include <time.h> /* Функцiя main */ int main() { setlocale(LC_ALL, "Ukr"); //Введення змiнних int arr[N];//масив int n, choice; // елементи, вибiр printf("Введiть кiлькiсть елементiв (до 50): "); scanf("%d", &n); if (n <= 0 || n > N) { printf("Неправильне значення!\n"); //перевiрка на коректну введену кiлькiсть елементiв return 1; } printf("Оберiть спосiб заповнення масиву:\n"); printf("1 - Ввести вручну\n"); printf("2 - Заповнити випадковими числами\n"); printf("Ваш вибiр: "); scanf("%d", &choice); switch (choice) { case 1: inputArray(arr, n); //якщо користувач ввiв "1", працює алгоритм введення елементiв з клавiатури break; case 2: randomArray(arr, n); //якщо користувач ввiв "2" працює алгоритм генерацiї елементiв за допомогою rand() break; default: printf("Такої функцiї не iснує!"); return 0; } printf("Масив: "); printArray(arr, n); int less, equal, greater; analyze_array(arr, n, &less, &equal, &greater); printf("\nАналiз масиву:\n"); printf("Середнє значення: "); double sum = 0; for (int i = 0; i < n; i++) sum += arr[i]; printf("%.2f\n", sum / n); printf("Елементiв менше середнього: %d\n", less); printf("Елементiв дорiвнює середньому: %d\n", equal); printf("Елементiв бiльше середнього: %d\n", greater); return 0; }
#include <stdio.h> #include <stdlib.h> #include <time.h> #include "module.h" // Заповнення масиву з клавiатури void inputArray(int arr[], int n) { printf("Введiть %d елементiв:\n", n); for (int i = 0; i < n; i++) { printf("arr[%d] = ", i); scanf("%d", &arr[i]); } } // "випадковi" числа void randomArray(int arr[], int n) { srand(time(NULL)); for (int i = 0; i < n; i++) { arr[i] = rand() % 41 - 20; // дiапазон вiд -20 до 20 } } // Вивiд масиву void printArray(int arr[], int n) { for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); } void analyze_array(int arr[], int n, int* less, int* equal, int* greater) { double sum = 0; for (int i = 0; i < n; i++) { sum += arr[i]; } double average = sum / n; *less = 0; *equal = 0; *greater = 0; for (int i = 0; i < n; i++) { if (arr[i] < average) (*less)++; else if (arr[i] == average) (*equal)++; else (*greater)++; } }
#ifndef MODULE_H #define MODULE_H #define N 50 /** * @brief Аналізує масив вiдносно середнього значення. * @param arr Вказiвник на масив. * @param size Розмiр масиву. * @param less Вказiвник для збереження кiлькостi елементiв, менших за середнє. * @param equal Вказiвник для збереження кiлькостi елементiв, рiвних середньому. * @param greater Вказiвник для збереження кiлькостi елементiв, бiльших за середнє. * @note Використовує вказiвникову арифметику (без iндексацiї []). */ void analyze_array(int* arr, int size, int* less, int* equal, int* greater); void inputArray(int arr[], int n); void randomArray(int arr[], int n); void printArray(int a[], int n); #endif
Editor Settings
Theme
Key bindings
Full width
Lines