ГАВАЛЯН 515-і lab4_1

Run Settings
LanguageC
Language Version
Run Command
/* * @file lab4_1.cpp * @author Гавалян Д.Є, гр. 515i * @date 21 квiтня 2025 * @brief Лабораторна робота № 4, варiант 19 * * Функцiї. Швидке сортування. Робота з вiдлагоджувачем. Завдання 1 */ #include <stdio.h> #include <locale.h> #include "module.h" /* Функцiя main */ int main() { setlocale(LC_ALL, "Ukr"); //Введення змінних int arr[N];//масив int n, choice; // елементи, вибір printf("Введiть кiлькiсть елементiв (до 50): "); scanf("%d", &n); if (n <= 0 || n > N) { printf("Неправильне значення!\n"); //перевірка на коректну введену кількість елементів return 1; } printf("Оберiть спосiб заповнення масиву:\n"); printf("1 - Ввести вручну\n"); printf("2 - Заповнити випадковими числами\n"); printf("Ваш вибiр: "); scanf("%d", &choice); switch (choice) { case 1: inputArray(arr, n); //якщо користувач ввів "1", працює алгоритм введення елементів з клавіатури break; case 2: randomArray(arr, n); //якщо користувач ввів "2" працює алгоритм генерації елементів за допомогою rand() break; default: printf("Такої функцiї не iснує!"); return 0; } printf("Масив: "); printArray(arr, n); printf("Вiдсортований масив: "); quicksort(arr, 0, n - 1);//виклик функції сортування printArray(arr, n); return 0; }
#include <stdio.h> #include <stdlib.h> #include <time.h> #include "module.h" // Заповнення масиву з клавіатури 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]); } } // "випадкові" числа void randomArray(int arr[], int n) { srand(time(NULL)); for (int i = 0; i < n; i++) { arr[i] = rand() % 41 - 20; // діапазон від -20 до 20 } } // Вивід масиву void printArray(int arr[], int n) { for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); } void quicksort(int arr[], int low, int high) { if (low >= high) return; int middle = split(arr, low, high); quicksort(arr, low, middle - 1); quicksort(arr, middle + 1, high); } int split(int arr[], int low, int high) { int part_element = arr[low]; while (low < high) { while (low < high && arr[high] <= part_element) // поменяли <= на >= high--; if (low < high) arr[low++] = arr[high]; while (low < high && arr[low] >= part_element) // поменяли >= на <= low++; if (low < high) arr[high--] = arr[low]; } arr[high] = part_element; return high; }
#ifndef MODULE_H #define MODULE_H #define N 50 void inputArray(int arr[], int n); void randomArray(int arr[], int n); void printArray(int a[], int n); void quicksort(int a[], int low, int high); int split(int a[], int low, int high); #endif
Editor Settings
Theme
Key bindings
Full width
Lines