#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n;
int a[100];
int choice;
printf("Выберите способ ввода:\n");
printf("1 - Ручной ввод\n");
printf("2 - Генерация случайных чисел\n");
printf("3 - Чтение из файла\n");
printf("Выбор: ");
scanf("%d", &choice);
printf("Введите количество элементов массива:\n");
printf("n = ");
scanf("%d", &n);
if (choice == 1)
{
printf("Введите элементы массива:\n");
for (int i = 0; i < n; i++)
{
printf("a[%d] = ", i);
scanf("%d", &a[i]);
}
}
else if (choice == 2)
{
int min, max;
printf("Минимальное значение: ");
scanf("%d", &min);
printf("Максимальное значение: ");
scanf("%d", &max);
srand(time(NULL));
int count = 0;
while (count < n)
{
int num = min + rand() % (max - min + 1);
int found = 0;
for (int k = 0; k < count; k++)
{
if (a[k] == num)
{
found = 1;
break;
}
}
if (!found)
{
a[count] = num;
count++;
}
}
printf("Сгенерированный массив:\n");
for (int i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
else if (choice == 3)
{
FILE * file;
file = fopen("/home/user/projects/result.txt", "r");
if (file == NULL)
{
printf("Ошибка: не удалось открыть файл\n");
return 1;
}
fscanf(file, "Отсортированный по возрастанию массив из %d элементов:\n", &n);
for (int i = 0; i < n; i++)
fscanf(file, "%d", &a[i]);
fclose(file);
printf("Массив из файла:\n");
for (int i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
for (int i = 1; i < n; i++)
{
int key = a[i];
int j = i - 1;
while (j >= 0 && a[j] > key)
{
a[j + 1] = a[j];
j = j - 1;
}
a[j + 1] = key;
}
printf("Отсортированный массив:\n");
for (int i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
FILE * file;
file = fopen("/home/user/projects/result.txt", "w");
fprintf(file, "Отсортированный по возрастанию массив из %d элементов:\n", n);
for (int i = 0; i < n; i++)
fprintf(file, "%d ", a[i]);
fprintf(file, "\n");
fclose(file);
printf("Результат выполнения программы записан в файл /home/user/projects/result.txt\n");
return 0;
}