#include #include #include #define SIZE 30 struct sensor { uint8_t day; uint8_t month; uint16_t year; int8_t t; }; void cgangeIJ(struct sensor* info,int i, int j){ struct sensor temp; temp=info[i]; info[i]=info[j]; info[j]=temp; } //упорядочивающую его по неубыванию температуры void SortByT(struct sensor* info,int n){ for(int i=0; i=info[j].t) cgangeIJ(info,i,j); } unsigned int DateToInt(struct sensor* info){ return info->year << 16 | info->month << 8 | info->day; } //упорядочивающую его по дате void SortByDate(struct sensor* info,int n){ for(int i=0; i= DateToInt(info+j)) cgangeIJ(info,i,j); } void AddRecord(struct sensor* info,int number, uint16_t year,uint8_t month,uint8_t day,int8_t t){ info[number].year = year; info[number].month = month; info[number].day = day; info[number].t = t; } struct data { uint32_t number; struct sensor info[SIZE]; } d; void load_bin(struct sensor* info,int number) { //Проверка на открытие файла FILE* f = fopen("sensor.bin","rb"); //Проверка на считанные данные fread(info,number*sizeof(struct sensor),1,f); fclose(f); } void save_bin(struct sensor* info,int number) { FILE* f = fopen("sensor.bin","wb"); fwrite(info,number*sizeof(struct sensor),1,f); fclose(f); } void load_bin_d(struct data* d) { //Проверка на открытие файла FILE* f = fopen("sensor.bin","rb"); //Проверка на считанные данные fread(&d->number,sizeof(d->number),1,f); fread(d->info,d->number*sizeof(struct sensor),1,f); fclose(f); } void save_bin_d(struct data* d) { FILE* f = fopen("sensor.bin","wb"); fwrite(&d->number,sizeof(d->number),1,f); fwrite(d->info,d->number*sizeof(struct sensor),1,f); fclose(f); } int AddInfo(struct sensor* info){ int counter=0; AddRecord(info,counter++,2021,9,16,9); AddRecord(info,counter++,2022,9,2,-9); AddRecord(info,counter++,2021,1,7,8); AddRecord(info,counter++,2021,9,5,1); return counter; } void print(struct sensor* info,int number){ printf("===================================\n"); for(int i=0;i