Добавил:
TaskeFox
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:2 курс / Программирование
.cpp#include <iostream>
#include <cstdlib>
using namespace std;
//сортировка
void sort_arr(int *tab,int size){
for (int i = 0; i < size - 1; i++)
for (int j = 0; j < size - i - 1; j++)
if (tab[j] < tab[j + 1]) {
int _t= tab[j];
tab[j] = tab[j + 1];
tab[j + 1] = _t;
}
}
int main(){
int *tab,n,size,i=0;
FILE *fin=fopen("1.txt","r");
if (fin==NULL)//проверяем удалось ли открыть файл
perror("Can`t open file");//Выпишет на екране что файл не удалось открыть
else{//если файл открыли успешно то все хорошо
while(!feof(fin)){//пока не дойдем к концу файла то цыкл действует
fscanf(fin,"%d",&n);//считываем числа
if(i==0){ // если это первое число, то это величина масива
size=n;//величина масива
tab=(int*)malloc(size*sizeof(int));//выделяем пам'ять под масив
}else//если это не первое число
tab[i-1]=n;// то записываем число в масив
i++;//считаем количество чисел в файле
}
}
//i-1 потому что первое число єто величина масива
if(i-1==size){//если величина масива ровна количесву чисел - 1 то все хорошо
sort_arr(tab,size); //сортировка масива от большего к меньшему
FILE *fout=fopen("out1.bin","wb");//открываем файл для записи бинарно
for(int j=0;j<i-1;j++)
//fprintf(fout,"%d ",tab[j]);//записываем туда наш масив
fwrite(tab,sizeof(int),size,fout);
fclose(fout);//закрываем файл
free(tab);//освобождаем память которую выделили под масив
cout<<"Done"<<endl;//выводим на экран что все записано успешно
}else{//если величина масива не ровна количеству чисел то уже ничего не делаем)
cout<<"Error array size"<<endl;//Выписываем ошибку
}
return 0;//конец
}
Соседние файлы в папке 2 курс