ho corretto tutto... pero ho un problema adesso con la funzione stampacodice:#include <stdio.h>#include <stdlib.h> #define size 90 struct lista { char stringa[size]; struct lista *next; }; struct lista *inserisci(struct lista* testa, char tmp[]); void stampa(struct lista *testa); void cerca(struct lista *testa, char icerca[]); main() { struct lista *testa=NULL; char tmp_stringa[size],icerca[size]; int n; printf("MENU:\n1-inserisci\n2-stampa ed esci\n"); scanf("%d", &n); do { switch(n) { case 1: printf("inserisci\n"); fflush(stdin); gets(tmp_stringa); testa=inserisci(testa,tmp_stringa); break; case 2: stampa(testa);break; default: printf("ERRORE\n");break; }; printf("MENU:\n1-inserisci\n2-stampa ed esci\n"); scanf("%d", &n); }while(n!=2); do { printf("cosa vuoi cercare?\n"); scanf("%s", icerca); cerca(testa,icerca); printf("vuoi continuare(si=1/no=0)\n"); scanf("%d", &n); }while(n==1); system("pause"); } struct lista *inserisci(struct lista *testa, char tmp[]) { struct lista *a,*b; a=(struct lista*)malloc(sizeof(struct lista)); strcpy(a->stringa,tmp); a->next=NULL; if(testa==NULL) { return a; } for(b=testa;b->next!=NULL; b=b->next); b->next=a; return testa; } void stampa(struct lista *testa) { for(;testa!=NULL; testa=testa->next) { printf("%s\n", testa->stringa); } } void cerca(struct lista *testa, char icerca[]) { for(;testa!=NULL; testa=testa->next) { if(strcmp(testa->stringa,icerca)==0) { printf("trovato\n"); } } }
avevo provato ad inserire fflush(stdout), ma nnt, come posso risolvere?