Ciao! Ecco il codice completo:
questa qui è la versione con il puntatore supporto, che fa funzionare il programmacodice:#include <stdio.h> struct elemento{char c; struct elemento *prox;}; typedef struct elemento elem; typedef elem *tp; tp lista1; void inizializzazione(tp *lista1); void accoda(tp *lista,char el); void elabora(tp *lista); void stampa(tp *lista); int main() {printf("IL PROGRAMMA RADDOPPIA IL NUMERO DI 'A' PRESENTI NELLA STRINGA DI 10\nCARATTERI IMMESSA DALL'UTENTE\n"); char string[12]; char el; int i; inizializzazione(&lista1); printf("Inserire stringa di 10 caratteri: "); fgets(string,12,stdin); for(i=0;i<10;i++) {el=string[i]; accoda(&lista1,el);} elabora(&lista1); printf("Risultato:\n"); stampa(&lista1); printf("\n\n"); system("PAUSE");} void inizializzazione(tp *lista) {*lista=NULL;} void accoda(tp *lista,char el) {elem *cursore; if(*lista==NULL) {cursore=malloc(sizeof(elem)); cursore->c=el; cursore->prox=NULL; *lista=cursore;} else accoda(&((*(*lista)).prox),el);} void elabora(tp *lista) {elem *cursore,*supporto; if(*lista!=NULL) {if((*(*lista)).c=='a') {cursore=malloc(sizeof(elem)); cursore->c='a'; cursore->prox=*lista; *lista=cursore; cursore=NULL; supporto=(*(*lista)).prox; elabora(&(supporto->prox));} else elabora(&((*(*lista)).prox));}} void stampa(tp *lista) {if(*lista!=NULL) {printf("%c",(*(*lista)).c); stampa(&((*(*lista)).prox));}}![]()

Rispondi quotando