Informatică, întrebare adresată de tabaraemi, 9 ani în urmă

Cine poate sa isi dea seama cazul pentru care rezolvarea mea nu respecta cerinta ?

Cerința
Se dă un șir de caractere. Să se determine câte vocale din șir sunt cuprinse între două consoane.

Date de intrare
Programul citește de la tastatură un sir de caractere.

Date de ieșire
Programul va afișa pe ecran valoarea cerută.

Restricții și precizări
șirul va avea cel mult 255 caractere
șirul nu va conține litere mari

Exemplu
Intrare

oasele sunt fragile
Ieșire

4


#include
#include
using namespace std;

int main(int argc, char** argv) {
char v[]="aeiou";
int i=1;
int nu,ad;
int k=0,z=0;
char s[255];
cin.getline(s,255);
while(i {z=0;
while(z {if(v[z]==s[i])
{nu=0;
ad=1;
while(nu {if(s[i-1]!=v[nu] && s[i+1]!=v[nu] )
ad=1;
else{ad=0;
break;
}
nu++;
}
if(s[i-1]!=' ' && s[i+1]!=' ')
if(ad==1)
k++;
}
z++;
}
i++;
}
cout< return 0;
}


tabaraemi: Accept si solutii alternative
blindseeker90: Nu am cum sa stiu daca solutia mea va trece de acele teste. S-ar putea sa pice la altele si n-ai rezolvat nimic. Poti sa atasezi un fisier text/sursa cu codul scris de tine? Imi va fi mai usor sa-l citesc
blindseeker90: Daca nu mai schimbi textul, eventual, dat pot sa afisez si varianta mea. Iti spun de acom ca o posibila sursa de eroare este faptul ca sunt numai litere mici. Daca este un text cu acronime precum SOS in care ai o vocala scrisa cu litera mare, atunci nu o sa o ia in considerare.
tabaraemi: Doar copiaza codul scris de mine in compilatorul tau (ma depaseste cum sa atasez fisiere pe site-ul asta)
tabaraemi: #include <iostream>
#include <string.h>
using namespace std;

int main(int argc, char** argv) {
char v[255],i,x;
cin.getline(v,255);
if(strlen(v)<3)
if(strlen(v)==1){
char c=v[0]-32;
cout<<c;}
else
{char q,p;
q=v[0]-32;
p=v[1]-32;
if(v[0]!=' ' && v[1]!=' ')
cout<<q<<p;
else
if(v[0]!=' ')
cout<<q;
else
if(v[1]!=' ')
cout<<p;}
else
{
v[0]=v[0]-32;
v[strlen(v)-1]=v[strlen(v)-1]-32;
i=1;
while(i<strlen(v)-1)
{if(v[i]!=' ')
if(v[i-1]==' ' || v[i+1]==' ')
v[i]=v[i]-32;
i++;
}
cout<<v;}
return 0;
}
tabaraemi: Up
tabaraemi: Nu aia
tabaraemi: Asta
tabaraemi: #include
#include
using namespace std;

int main(int argc, char** argv) {
char v[]="aeiou";
int i=1;
int nu,ad;
int k=0,z=0;
char s[255];
cin.getline(s,255);
while(i {z=0;
while(z {if(v[z]==s[i])
{nu=0;
ad=1;
while(nu {if(s[i-1]!=v[nu] && s[i+1]!=v[nu] )
ad=1;
else{ad=0;
break;
}
nu++;
}
if(s[i-1]!=' ' && s[i+1]!=' ')
if(ad==1)
k++;
}
z++;
}
i++;
}
cout< return 0;
}
tabaraemi: Ma numesc Tabara Emanuel pe fb daca vrei sa vorbim prin mesaje.

Răspunsuri la întrebare

Răspuns de blindseeker90
1
#include <string.h>
#include <iostream>
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
    char v[]="aeiou";
    int i=1;
    int nu,ad;
int k=0,z=0;
char s[255];
cin.getline(s,255);
while(i<strlen(s)-1)
{z=0;
    while(z<strlen(v))
    {if(tolower(v[z])==tolower(s[i]))
        {nu=0;
        ad=1;
        while(nu<strlen(v))
                {if(tolower(s[i-1])!=tolower(v[nu]) && tolower(s[i+1])!=tolower(v[nu]) && isalpha(s[i+1])&&isalpha(s[i-1]))
                ad=1;
                
                else{ad=0;
                break;
                }
               nu++;
            }
        if(ad==1){
            k++;
        }
        break;
        }
    z++;
    }
i++;    
}
cout<<k;
return 0;
}
Alte întrebări interesante