rendered paste body#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 5
struct Foititis{
char am[10];
char epi[20];
char ono[20];
float mo;
};
struct IFoititis{
char am[10];
int dief;
};
main()
{
struct Foititis fo;
struct IFoititis *ifo, temp;
int pl, m, i,j,sin;
FILE *dataf,*indexf;
dataf=fopen("foitites.dat","rb+");
if(!dataf){
indexf=fopen("foitites.ndx","wb");
pl=0;
fclose(foitites.ndx);
}
else{
indexf=fopen(foitites.ndx,"rb");
fseek(indexf,0,SEEK_END);
pl=ftell(indexf)/sizeof(struct IFoititis);
fclose(indexf);
fseek(dataf,0,SEEK_END);
}
m=pl;
ifo=malloc((pl+N)*sizeof(struct IFoititis));
printf("\nEISAGOGI EGGRAFON :\n\n");
do{
printf("\nEIsagogi am:");
scanf(%s",&fo.am)";
printf("\nEIsagogi onomatos foititi:");
scanf(%s",&fo.ono)";
printf("\nEIsagogi eponymou foititi:");
scanf(%s",&fo.epi)";
printf("\nEIsagogi vathmou-mesou orou foititi:");
scanf(%s",&fo.mo)";
fwrite(&f,sizeof(struct Foititis),1,dataf);
strcpy(ifo[m].am=fo.am);
ifo[m].dief=m;
m++;
printf("\nEpithimeite nea eisagogi? (1=NAI, 0=OXI) : ");
scanf(%d, &sin);
}while (sin==1 && m<pl+N);
fclose(dataf);
if(m<pl+N){
indexf=fopen("foitites.ndx","rb+");
fseek(indexf,0,SEEK_END);
for(i=pl;i<m;i++)
fwrite(&ifo[i],sizeof(struct IFoititis),1,indexf);
fclose(indexf);
}
indexf=fopen(foitites.ndx","rb");
fseek(indexf,0,SEEK_END);
pl=ftell(indexf)/sizeof(struct IFoititis);
fseek(indexf,0,SEEK_SET);
fread(&ifo[0],sizeof(struct IFoititis),pl,indexf);
fclose(indexf);
selection_sort(ifo,pl);
indexf=fopen("foitites.ndx","wb");
fwrite(&ifo[0],sizeof(struct IFoititis),pl,indexf);
fclose(indexf);
free(ifo);
}
void selection_sort(struct IFoititis x[],int D)
{
int i,j,t;
struct Foititis temp;
for(i=0; i<D-1; i++) {
t=i;
for(j=i+1; j<D; j++)
if(strcmp(x[t].am,x[j].am)>0)
t=j;
temp=x[i];
x[i]=x[t];
x[t]= temp;
}
}