Отсортировать по возрастанию массив, заданный в виде файла - C (СИ)
Формулировка задачи:
Есть задание: отсортировать по возрастанию массив, заданный в виде файла. Задание необходимо выполнить двумя способами: с использованием классических массивов и с помощью указателей. Помогите, пожалуйста.
Решение задачи: «Отсортировать по возрастанию массив, заданный в виде файла»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
const int N = 10;
int main()
{
int i, j, c, A[N];
FILE *fp;
fp = fopen("input.txt", "r");
if(fp == NULL){
printf("Net faila dannyh\n");
return 1;
}
for(i = 0; i < N; ++i)
if(1 != fscanf(fp, "%d", &A[i])){
printf("Ne hvataet dannyh v faile\n");
return 1;
}
fclose(fp);
for(i = 0; i < N - 1; ++i){
for(j = N - 2; j >= i; --j)
if(A[j] > A[j + 1]){
c = A[j];
A[j] = A[j + 1];
A[j + 1] = c;
}
}
printf("otsortirovanniy massiv\n");
for(i = 0; i < N; ++i)
printf("%d ", A[i]);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и математическими операциями
- Объявление константы N, которая определяет размер массива
- Объявление переменных:
- i, j, c - для выполнения операций сравнения и перемещения элементов массива
- A[N] - массив, который будет заполняться числами из файла
- fp - указатель на файл, который будет использоваться для чтения чисел
- Открытие файла input.txt для чтения с помощью функции fopen
- Проверка на успешное открытие файла. Если файл не открылся, выводится сообщение об ошибке и программа завершается
- Чтение чисел из файла в массив A с помощью функции fscanf
- Закрытие файла с помощью функции fclose
- Сортировка массива по возрастанию с помощью алгоритма пузырька
- Вывод отсортированного массива на экран с помощью функции printf
- Возврат 0, что означает успешное выполнение программы