Salve vorrei chiedervi aiuto riguardo tale esercizio:
In un vettore di 100 elementi è memorizzata una frase. Ogni lettera della frase è contenuta in un elemento del vettore.
Scrivi un programma che permetta di:
- Memorizzare la frase nell'array;
- Stampare la frase al contrario; (Es. "Il mio gatto" -> "ottag oim li")
- Stampare il numero di parole memorizzate nell'array; (le parole sono separate dal carattere spazio)
- Stampare quante volt compare ciascuna vocale e quale vocale compare con frequenza maggiore;
Di seguito la codifica:
#include <iostream>
using namespace std;
int main () {
int n,a,e,o,u,y,f,l,voc_max,s;
char vet[100],voc;
f=0,a=0,e=0,y=0,o=0,u=0;
for (int i=0;i<100;i++){
system("cls");
cout<<"Inserire il "<<f+1<<" carattere della frase. Dopo l'ultimo carattere inserire un asterisco."<<endl;
cin>>vet[f];
if (vet[f]=='*') {
i=100;
}
if (vet[f]='\0') {
s++;
}
f++;
}
s=s+1;
l=0;
for (int m=0;m<f;m++) {
if (vet[m]=='a'){
a++;
}
if (vet[m]=='e'){
e++;
}
if (vet[m]=='i'){
y++;
}
if (vet[m]=='o'){
o++;
}
if (vet[m]=='u'){
u++;
}
}
voc_max=0;
if (a>voc_max) {
voc_max=a;
voc='A';
}
if (e>voc_max) {
voc_max=e;
voc='E';
}
if (y>voc_max) {
voc_max=y;
voc='I';
}
if (o>voc_max) {
voc_max=o;
voc='O';
}
if (u>voc_max) {
voc_max=u;
voc='U';
}
for (l=f;l>=0;l--) {
cout<<vet[l];
}
cout<<"\nIl numero di parole presenti nella frase e' "<<s<<endl;
cout<<"Il numero di volte in cui compare la vocale 'A' e' "<<a<<endl;
cout<<"Il numero di volte in cui compare la vocale 'E' e' "<<e<<endl;
cout<<"Il numero di volte in cui compare la vocale 'I' e' "<<y<<endl;
cout<<"Il numero di volte in cui compare la vocale 'O' e' "<<o<<endl;
cout<<"Il numero di volte in cui compare la vocale 'U' e' "<<u<<endl;
cout<<"La vocale che appare con piu' frequenza e' la vocale '"<<voc<<"' che si ripete "<<voc_max<<" volte"<<endl;
system ("pause");
}
Gli unici miei problemi li riscontro nel 2° e 3° punto. Praticamente non riesco a scrivere la frase al contrario, o meglio, se ci riesco me la riscrive senza spazi e giustamente dopo non mi conta le parole presenti nella frase in base agli spazi. Sono ancora un novellino in c++ ma vorrei capire come risolvere questo problema. Spero qualcuno possa aiutarmi. Grazie in anticipo.