Originariamente inviato da giova87
numero_parole è inizializzato a zero..
il primo ciclo
codice:
while(temp != NULL && numero_parole <= 100 )
lo fa una sola volta ( e non capisco il motivo)
Bè ma quindi non deve essere rispettata una delle due condizioni... Che numero_parole sia <= 100 è evidente, quindi non resta che controllare che temp sia diverso da NULL...
Quando fai:
codice:
while(temp != NULL)
{
if(temp->frequenza == massimo)
{
fprintf(fpw,"%d %s \r\n",temp->frequenza,temp->parola);
numero_parole++;
if(temp == testa)
{
if(temp->next != NULL)
{
testa = testa->next;
}
else
{ //lista finita
break;
}
}
canc=temp;
temp=temp->next;
prev->next=temp;
free(canc);
}
else
{
prev=temp;
temp=temp->next;
}
}
spulci tutto "temp" fino alla fine giusto?
Quindi prima di uscire dal ciclo, come ultima cosa, non dovresti fare di nuovo:
??