All pastes #763634 Raw Edit

Stuff

public text v1 · immutable
·published 2007-11-06 17:00 UTC
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; 
 }
}