Ciao! Ecco il codice completo:
codice:
#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));}}
questa qui è la versione con il puntatore supporto, che fa funzionare il programma