Salve a tutti!
Ho un problema..
In questo codice io devo leggere un file contenente parole delimitate da un numero variabile di spazi e devo creare un file contenente le parole e la loro relativa frequenza, in modo decrescente.
La lista è già creata e riempita;il problema sorge nella stampa delle 100 parole più frequenti.
Non riesco a capire come mai mi stampi solo la prima parola più frequente e nessun'altra!
Questo è il codice:
codice:
temp=testa;
if(testa==NULL)
{
fclose(fpw);
exit(0);
}
else
{
while(temp != NULL && numero_parole <= 100 )
{
massimo=0;
while(temp != NULL) //ciclo per trovare il massimo
{
if(temp->frequenza > massimo)
{
massimo=temp->frequenza;
}
temp=temp->next;
}
temp=testa;
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;
}
}
}
}
Spero che ci sia qualche buon anima che mi possa rispondere e aiutare!
Grazie in anticipo..