Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 курс / Программирование

.cpp
Скачиваний:
6
Добавлен:
21.08.2019
Размер:
2.54 Кб
Скачать
#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 курс