Sto scrivendo questo programmino per esercizio:
questo è il codice:
Qualche aiuto/consiglio??
EDIT: ho modificato un po' il codice postato prima, perchè non mi ero accorto di aver postato una versione ancora più sbagliata.
Il problema da quel che ho capito è che la funzione 'ok' restituisce sempre true.
Codice:
Scrivere un programma che letto da input un array di 10 carattere stampi "ok" se il numero di vocali (a,e,i,o,u) minuscole distinte è al max 1, altrimenti stampi errore
es:
input: m m r e t v c d f w
output: ok
in: a d f a s w a a x c
out: ok
in: a s d e d u g d e
out: errore
questo è il codice:
Codice:
#include <iostream>
using namespace std;
const int dim=10;//100
void leggi (char a[])
{
for (int i=0; i<dim; i++)
cin>>a[i];
}
bool ok (char a[])
{
for (int i=0; i<dim; i++)
{
if ((a[i]=='a')&&(a[i]=='e' || a[i]=='i' || a[i]=='o' || a[i]=='u'))
return false;
else if ((a[i]=='e')&&(a[i]=='a' || a[i]=='i' || a[i]=='o' || a[i]=='u'))
return false;
else if ((a[i]=='i')&&(a[i]=='e' || a[i]=='a' || a[i]=='o' || a[i]=='u'))
return false;
else if ((a[i]=='o')&&(a[i]=='e' || a[i]=='i' || a[i]=='a' || a[i]=='u'))
return false;
else if ((a[i]=='u')&&(a[i]=='e' || a[i]=='i' || a[i]=='o' || a[i]=='a'))
return false;
}
return true;
}
void stampa(char a[])
{
[B]cout<<ok(a)<<endl; //risulta sempre 1[/B]
if (ok(a))
cout<<"OK";
else
cout<<"ERRORE";
}
int main()
{
char A[dim];
leggi (A);
stampa (A);
return 0;
}
Qualche aiuto/consiglio??
EDIT: ho modificato un po' il codice postato prima, perchè non mi ero accorto di aver postato una versione ancora più sbagliata.
Il problema da quel che ho capito è che la funzione 'ok' restituisce sempre true.
Ultima modifica: