Salve, ho una traccia che mi dice di inserire da tastiera un numero(tra 1 e 9), convertirlo in stringa, e inserirlo poi in una lista e stampare.
Quali sono gli errori nel codice? Perché non vacodice:#include<stdio.h> #include<string.h> #include<malloc.h> struct Nodo { char *str; struct Nodo *link; }; struct Nodo *Lista=0; void Inserisci(char *); void Stampa(); char * Converti(int ); int main(){ int num; char *buffer; printf("inserisci numero: "); scanf("%d", &num); if(num>0 && num<10){ buffer=Converti(num); Inserisci(buffer); Stampa(); } else printf("Errore"); return 0; } void Inserisci(char *buf){ struct Nodo *p=(struct Nodo *)malloc(sizeof(struct Nodo)); p->str=(char *)malloc((strlen(buf)+1)*sizeof(char)); strcpy(p->str, buf); p->link=Lista; Lista=p; } char *Converti(int n) { char *buf; if(n==1) strcpy(buf, "Uno"); else if(n==2) strcpy(buf, "Due"); else if(n==3) strcpy(buf, "Tre"); else if(n==4) strcpy(buf, "Quattro"); else if(n==5) strcpy(buf, "Cinque"); else if(n==6) strcpy(buf, "Sei"); else if(n==7) strcpy(buf, "Sette"); else if(n==8) strcpy(buf, "Otto"); else strcpy(buf, "Nove"); return (buf); } void Stampa(){ struct Nodo *cur=Lista; while(cur){ printf("\n"); printf("%s", cur->str); cur=cur->link; } }

Rispondi quotando
