domi90 (Normal User)
Rookie
Messaggi: 22
Iscritto: 07/05/2010
|
queste sono le strutture che uso:
struct rubrica{
char nome[15];
char cognome[15];
char indirizzo[15];
char telefono[15];};
struct rubrica rub;
struct rubrica agenda[10];
questa č la funzione che da problemi in quanto non ordina:
void ordina(void){
int p,k,x, n, i=0, j,u;
fp=fopen("Agenda","r+");
for(;{
n=fread(&agenda[i++],sizeof(struct rubrica),1,fp);
if(n==0)
break;}
u=i;
p=i;
do{k=0;
for(j=0;j<i-1;j++){
if(strcmp(agenda[j].nome,agenda[j+1].nome)>0){
rub=agenda[j];agenda[j]=agenda[j+1];agenda[j+1]=rub;k=1;p=j+1;}
i=p;}}
while(k==1);
fseek(fp,0L,0);
for(x=0;x<u;x++){
fwrite(&agenda[x++],sizeof(struct rubrica),1,fp);
fseek(fp,x+1-sizeof(struct rubrica),0);}
fclose(fp);
return;}
compila normalmente ma non ordina il file
|