Oppure

Loading
28/05/10 21:05
domi90
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
aaa