Считать числа из файла, отсортировать и записать в другой - C (СИ)
Формулировка задачи:
Программа должна считывать 10 чисел из файла input.txt, сортировать их в порядке возрастания и записывать в файл output.txt. Компилировалось без ошибок. При запуске ничего не происходит. В чем может быть ошибка?
Как можно изменить программу, чтобы N - кол-во чисел, считывалось с первой строки input.txt, а числа со второй?
#include <stdio.h>
main(){
int i,j,N,mm,tmp;
FILE *in, *out;
in=fopen("input.txt","r");
out=fopen("output.txt","w");
int dig[N];
scanf("%d", &dig[N]);
for(i=N-1;i>=1;i--){
N=10;
mm=0;
for(j=1;j<=i;j++)
if(dig[j] > dig[mm])
mm=j;
tmp=dig[i];
dig[i]=dig[mm];
dig[mm]=tmp;
}
for(i=0;i<N;i++)
fprintf(out, "%d ",dig[i]);
fclose(in);
fclose(out);
return 0;
}Решение задачи: «Считать числа из файла, отсортировать и записать в другой»
textual
Листинг программы
N=10; int dig[N]; fscanf(in,"%d", &dig[N]);
Объяснение кода листинга программы
- Объявляется целочисленная переменная N и инициализируется значением 10.
- Объявляется массив dig типа int и инициализируется 10 элементами.
- Файловый указатель in инициализируется.
- В цикле от 0 до N-1 происходит чтение чисел из файла в массив dig с помощью функции fscanf.