|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Nov 2009
Messaggi: 1
|
[C] Modifica prog in c
Ciao io ho qst programma che vorrei modificare:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> //Questo programma memorizza un file in memoria dinamica, ma non memorizza la stessa parola due volte #define MAX_PAROLE 400000 typedef struct { char *parola; int num; }parole; void ordina(parole *a[], int n); void attendi (); int main(int argc, char* argv[]) { char frase[100]; parole *libro[MAX_PAROLE]; int i=0, dimensione_totale=0; int j; char trovato; clock_t t1,t2; float tm; FILE * pf; pf=fopen(argv[1],"r"); if (pf==NULL) { printf("Impossibile aprire il file\n"); return 1; } for (i=0;i<MAX_PAROLE;i++) libro[i]=NULL; i=0; do { fscanf (pf,"%s",frase); if (feof(pf)) break; for (j=0,trovato=0;libro[j];j++) if (strcmp(libro[j]->parola,frase)==0){ trovato=1; libro[j]->num+=1; break; } if (!trovato) { libro[i]=malloc(sizeof(parole)); libro[i]->parola=malloc(strlen(frase)+1); dimensione_totale+=strlen(frase)+1; strcpy (libro[i]->parola,frase); libro[i]->num=1; //printf ("%s %d\n",frase,i); i++; if (i == MAX_PAROLE-1) { printf ("Troppe parole. devo fermarmi qui\n"); attendi(); break; } } }while (1); printf ("\n\nAdesso ristampo il libro\n\n"); attendi(); for (j=0;libro[j];j++) printf ("%4d %-25s presente %d volte\n",j,libro[j]->parola,libro[j]->num); attendi(); printf ("Adesso metto tutto in ordine\n"); t1=clock(); ordina (libro, i); t2=clock(); tm=((float)(t2-t1))/(CLOCKS_PER_SEC); printf("\ntempo di ordinamento: %f s\n",tm); printf ("\n\nAdesso ristampo il libro\n\n"); attendi(); for (i=0;libro[i];i++) printf ("%4d %-25s presente %d volte\n",i,libro[i]->parola,libro[i]->num); return 0; } Però vorrei modificarlo in modo che mi stampi solo le 20 parole più usate e scrivere accanto quante volte sono presenti nel testo solo x qll 20 parole e in base a qnt volte compare far stampare a lato un determinato numero di cancelletti per esempio cosi: ciao (2) #### buongiorno (3) ##### salve (4) ###### come potrei modificare qll programma? grazie ciao |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Usa il tag code quando posti dei codici sorgenti, così mantieni l'indentazione (se li avevi indentati).
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:51.