Ciao ragazzi..
ho un problema con un programma..
sono riuscita a fare la prima parte che mi richiede di inserire una parola in una lista linkata ordinata ogni qual volta viene ricevuta in input.
Il problema è che devo contare il numero di vocali presenti in lista.
Vi posto il mio codice
codice:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_DIM 20

typedef struct Elenco{
   char info[MAX_DIM];
   struct Elenco *next;
   } Elenco;
typedef Elenco * puntElenco;

puntElenco inserisci(puntElenco L, char*word){
   puntElenco q;
   q=(puntElenco)malloc(sizeof(Elenco)); //crea un elenco allocandolo sulla memoria dinamica
   strcpy(q->info,word);
   q->next=L;  //lega al resto della lista
   return(q);  //ritorna al nuovo puntatore della lista
}
                       
                       //definizione funzione di inserimento in lista      
puntElenco InserisciElementoInLista(puntElenco L,char*parola){
   puntElenco q=L, prec;
   int PosTrovata=0;
   if(q==NULL){        // lista vuota
      q=inserisci(L,parola);
      return(q);
   }
   
                     //lista con una parola con inseriemnto in testa
   if(strcmp(q->info,parola)>=0){ 
      q=inserisci(L,parola);
      return q;
   }
                    //lista con almeno una parola più inserimento dopo la prima parola
   while (q!=NULL && (PosTrovata==0))
   {
      if(strcmp(q->info,parola)<0)
      {
         prec=q;
         q=q->next;
      }
      else
         PosTrovata=1;
   }
   prec->next=inserisci(q,parola);
   return (L);
}
             //definizione funzione di visualizzazione lista
void VisualizzaLista(puntElenco L){
   puntElenco q=L;
   printf("\nLista parole:\n\n");
   while(q!=NULL){
      printf("%s\n",q->info);
      q=q->next;
   }
   printf("\n");
}

void ContaNumeroVocaliInLista(char word[], int *pvocali){
   
   char c; 
   int count; 
   for(count=0;count<MAX_DIM;++count){
                                      if (c== 'a' && c== 'A' || c== 'e' && c== 'E' ||
                                      c== 'i' && c== 'I' || c== 'o' && c== 'O' || c== 'u' && c== 'U' )
                                      ++ *pvocali;
                                      }
                                      return;
                                      }

int main (){
   puntElenco el_parole=NULL;
   el_parole = NULL;
   int scelta,a=1;
   int vocali=0;
   char word[MAX_DIM]={'\0'},lunga[MAX_DIM]={'\0'};
   
   do{
        //creazione MENU
         printf("SCELTA OPERAZIONE \n");
         printf("\nPREMI 1:-----------INSERISCI PAROLA---------------------\n");
         printf("PREMI 2:-----------VISUALIZZA LISTA-----------------\n");
         printf("PREMI 3:----------VISUALIZZA VOCALI IN LISTA-----------\n");
         printf("PREMI 4:----------------USCITA-----------------\n");
         printf("\nScelta: ");
         scanf("%d",&scelta);
             
         if(scelta==1){
            printf("Digita la parola da inserire: ");
            scanf("%s",word);   
            el_parole=InserisciElementoInLista(el_parole,word);
         }
            //definizione delle possibili scelte               
         if(scelta==2) VisualizzaLista(el_parole);
               
         if(scelta==3){
                       ContaNumeroVocaliInLista(word, &vocali);
                       printf("Le vocali presenti in lista sono: %d ", vocali);
                       
                       }
         if(scelta==4) a=0;
             
         if(scelta!= 1 && scelta!= 2 && scelta!= 3 && scelta!=4) printf("\nScelta non valida\n\n");
             
      } while(a!=0);
      
      return 0;
   }
mi rendo conto che la funzione ContaNumeroVocaliInLista non passa la lista, passa solo l'array di char..ma non so passare la lista..
mi potete dare una mano?