Ho l'impressione " anche se funziona " che sia possibile migliorare il tutto . L'unica cosa che non riesco a fare è come verificare e stampare la vocale che compare con maggior frequenza . Il codice che ho scritto è il seguente, comprensivo del testo dell'esercizio ( in grassetto ho evidenziato quello che non so fare ) :
/* in un array di 100 elementi è memorizzata una frase.
ogni lettera di una frase è contenuta in un elemento dell'array .
scrivere un programma che permette di :
memorizzare la frase nell'array;
stampare la frase al contrario;
stampare il numero di parole memorizzate nell'array ( le parole sono separate dal carattere " spazio " );
stampare quante volte compare ciascuna vocale
e quale vocale compare con frequenza maggiore . */
#include<iostream>
#include<string>
using namespace std;
int main(){
char frase[100],vocale;
int k,i,cp=0,cv,j,voca,voce,voci,voco,vocu,vmax;
int vetvoc[100];
cout<<"Inserisci frase"<<endl;
cin.getline(frase,100);
cout<<"\n";
k=strlen(frase);
cout<<"Numero caratteri della frase = "<<k<<endl;
cout<<"\n";
for(i=k-1;i>=0;i--)
cout<<frase[i];
cout<<"\n";
for(i=0;i<=k;i++)
if(frase[i]==' ' || frase[i]=='\0')
cp=cp+1;
cout<<"\n";
cout<<"Numero parole = "<<cp<<endl;
cout<<"\n";
voca=voce=voci=voco=vocu=vmax=0;
for(i=0;i<=k;i++){
switch(frase[i]){
case 'a':; case 'A' :
voca++;
break;
case 'e':; case 'E':
voce++;
break;
case 'i':; case 'I':
voci++;
break;
case 'o':; case 'O':
voco++;
break;
case 'u':; case 'U':
vocu++;
break;
}
}
cout<<"numero complessivo di vocali a ="<<"\t"<<voca<<endl;
cout<<"\n";
cout<<"numero complessivo di vocali e ="<<"\t"<<voce<<endl;
cout<<"\n";
cout<<"numero complessivo di vocali i ="<<"\t"<<voci<<endl;
cout<<"\n";
cout<<"numero complessivo di vocali o ="<<"\t"<<voco<<endl;
cout<<"\n";
cout<<"numero complessivo di vocali u ="<<"\t"<<vocu<<endl;
cout<<"\n";
system("pause");
}
qualcuno può aiutarmi ?