Răspuns :
Atunci cand dai strchr(voc,s[i]), tu nu verifici daca cuvantul e format doar din vocale,ci de fapt verifici daca s[i] este vocala.Asa ca vom folosi un contor care incepe de la 0 pt cate cuvinte doar din vocale sunt si vom folosi nr, ca si contor de cate vocale sunt in cuvant.
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("doarvocale.in");
ofstream fout("doarvocale.out");
char s[31];
char voc[] = "aeiou";
int i, n, k;
int nr, cnt;
int main() {
fin >> n ;
fin.get() ;
for (k = 1 ; k <= n; k++) {
fin.getline(s, 31);
nr = 0 ;
for (i = 0 ; i < strlen(s) ; ++ i){
if (strchr(voc, s[i])){
nr ++ ; //daca litera e vocala
}
}
if (strlen(s) == nr) //daca toate literele au fost vocale
cnt ++ ;
}
fout << cnt ;
return 0;
}
Pot sa fac o solutie mai eficienta.Daca esti curios sa imi spui.
Vă mulțumim că ați ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți alte întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag să reveniți și nu uitați să ne salvați în lista de favorite!