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:
Spero che ci sia qualche buon anima che mi possa rispondere e aiutare!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; } } } }
Grazie in anticipo..

Rispondi quotando