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

Cerința

Se consideră un cuvânt format din cel puțin două și cel mult 100 de caractere, numai litere mici ale alfabetului englez.

Scrieţi un program care citeşte de la tastatură un cuvânt de tipul precizat și afișează pe ecran mesajul DA în cazul în care cuvântul conține doar consoane şi, eventual, vocala i, sau mesajul NU în caz contrar.
Date de intrare

Programul citește de la tastatură un cuvânt.
Date de ieșire

Programul va afișa pe ecran mesajul DA în cazul în care cuvântul conține doar consoane şi, eventual, vocala i, sau mesajul NU în caz contrar.
Exemplul 1

Intrare

inscriptibil

Ieșire

DA

Exemplul 2

Intrare

brr

Ieșire

DA

Exemplul 3

Intrare

inestimabil

Ieșire

NU

Exemplul 4

Intrare

iii

Ieșire

NU
1456 cuvant
daca se poate fara stringuri pls

Răspunsuri la întrebare

Răspuns de alexandrumorus
3

#include <iostream>

using namespace std;

char v[101];

int main()

{

   int i,cns = 0;

   for (i = 1; i <= 100; i ++)

   {

       cin.get(v[i]);

       if (v[i] == '\n')

           break;

       if (v[i] == 'a' || v[i] == 'e' || v[i] == 'o' || v[i] == 'u')

       {

           cout << "NU";

           return 0;

       }

       else if (v[i] == 'i')

       {

           continue;

       }

       else

       {

           cns ++;

       }

   }

   if(cns)

       cout << "DA";

   else

       cout << "NU";

   return 0;

}


cosmaandra2000: apar de-a erori... 1. nu ai folosit biblioteca string. 2. este un cuvânt, nu un sir cu spatii, deci făra cin.get. 3. în if oricum nu l-ai băgat pe "i", deci nu mai trebuia sa scrii ce este după return 0. 4. for-ul trebuie parcurs pana la n, care este lungimea cuvântului, pe care tu nu o știi, strlen(s) adica. 5. atunci când cauți o un caracter in orice... folosești strchr.
cosmaandra2000: Programul asta nu va ieși nici la Craciun, iar asa induci lumea in eroare, din moment ce ti-a si pus ca e cel mai bun raspuns :))
alexandrumorus: Programul functioneaza corect si el a cerut fara stringuri
alexandrumorus: cin.get e pt ca nu se introduce un nr limita
alexandrumorus: ciesc pana la enter
alexandrumorus: fara if-ul acela pt" iii" imi afisa "da"
alexandrumorus: si la enter ma opresc din citire
alexandrumije: Imi pare rau ca din cauza intrebarii mele s-a ajuns la atata cearta insa ambele surse sunt corecte
Răspuns de cosmaandra2000
4

#include <iostream>

#include <string.h>

using namespace std;

int main()

{

  char s[101];

  cin>>s;

  int i, n, OK = 1; // considerăm că șirul conține doar consoane

  n=strlen(s)  

  for (i = 0; i <= strlen(s); i ++)

         {  if( strchr ( "aeou", s[i] ) == 1 )  // dacă găsim vocală ( fără i )

                    OK=0; // OK e zero deci am găsit vocala și urmează "NU"

           if( OK == 1)

                   cout << " DA ";

            else

                   cout<< " NU "; }

return 0; }





cosmaandra2000: la for ( ), inloc de strlen(s), este n-1, sau poti sa lasi asa si mai pui un -1
Alte întrebări interesante