Ciao,
mi sono permesso di fare qualche piccola modifica: in particolare ho aggiunto una semplice funzione che prende in ingresso un carattere e ti dice se si tratta di una vocale oppure no. Questo permette di mantenere molto più "pulito" il codice del main.
Prova a vedere se ti piace...
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
char vocali[] = { 'a', 'e', 'i', 'o', 'u' };
char consonanti[] = { 'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z' };
/* funzione che restituisce 1 se il carattere passato è una vocale, 0 altrimenti */
int isVocale(char c)
{
int i=0;
for(i=0; i<5; i++)
{
if(c == vocali[i]) return 1;
}
return 0;
}
int main()
{
char s[30];
int voca = 0;
int i;
int conso = 0;
printf("Inserire una Stringa :\n" );
gets( s );
for( i = 0; s[i] != '\0'; i++ )
{
if(s[i] == ' ') continue; /* trascura gli spazi */
if(isVocale(s[i]) == 1) voca++;
else conso++; /* se non è una vocale allora è una consonante... */
}
printf("Vocali : %d\n", voca );
printf("Consonanti : %d\n", conso );
return 0;
}