Aiuto urgente su array

di il
8 risposte

Aiuto urgente su array

1. Si scriva un programma C++ che, letta da input una sequenza di caratteri (si intendono qui
lettere minuscole dell’alfabeto) terminata dal carattere ‘.’ (“punto”), stampi su standard output il numero
di sottosequenze, definite come di seguito, che la compongono.
Ogni sottosequenza è composta da vocali e consonanti alternate, cioè una vocale seguita da una
consonante, a sua volta seguita da una vocale, e così via. La sottosequenza può iniziare tanto con una
vocale quanto con una consonante. Le sottosequenze sono separate le une dalle altre da coppie di vocali o
coppie di consonanti: quindi, ogni volta che si incontrano due vocali di seguito (o, equivalentemente, due
consonanti di seguito), termina una sottosequenza e ne inizia un’altra.
ESEMPIO: data la sequenza { o g g i f a c a l d o . } , si individuano le sottosequenze: {og},
{gifacal}, {do} –Pertanto, il programma dovrebbe stampare su standard output il numero 3, pari al numero
di sottosequenze presenti. Se invece la sequenza data in input è { a a a b c . }, allora si individuano le
sottosequenze: {a}, {a}, {a b}, {c} e il programma dovrebbe stampare 4.
mi scrivete il codice perfavore nn riesco proprio a fare questo esercizio....

8 Risposte

  • Re: Aiuto urgente su array

    Perche' non riesci a fare l'esercizio?
    Tutto? Improbabile, almeno il main, la lettura da tastiera e la stampa su schermo lo devi saper fare. Sono i primi esempi che trovi in qualunque testo di programmazione in c++.
    Certo, questo implica avere almeno aperto il libro
  • Re: Aiuto urgente su array

    "Mi scrivete il codice .... urgente" ...

    Hai proprio capito male ... non si fanno queste richieste nel forum ...
  • Re: Aiuto urgente su array

    #include <iostream>

    using namespace std;

    int main()
    {
    char string[100];
    char vocali[5]={'a','e','i','o','u'};
    int cont=0;
    int cont2=0;
    char car;
    while(car != '.')
    {
    cin>>car;
    string[cont]=car;
    cont++;
    }
    for(int i=0;i<cont;i++)
    for(int x=0;x<cont;x++)
    if(string==vocali[x] || string[i+1]==vocali[x])
    if(string != vocali[x] || string[i+1] != vocali[x])
    cont2++;

    cout<<cont2;
    return 0;
    }
    è sicuramente sbagliato ma come faccio a vedere se nell array che inserisco da tastiera ci sono elementi dell array 'vocali'???
  • Re: Aiuto urgente su array

    Perché utilizzi cont in tutti e due i for? Cosa è cont? Quando dovrebbero terminare i due cicli?
  • Re: Aiuto urgente su array

    [quote="oregon"]Perché utilizzi cont in tutti e due i for? Cosa è cont? Quando dovrebbero terminare i due cicli?[/quoti
    i due cicli devono terminare quando è stata controllata tutta la stringa inserita....
  • Re: Aiuto urgente su array

    oregon ha scritto:


    Perché utilizzi cont in tutti e due i for? Cosa è cont? Quando dovrebbero terminare i due cicli?

    ho provato a creare una costante dim che aumenta ogni volta che inserisco un carattere da tastiera
    e poi i cicli terminavano finche il contatore era < di dim
  • Re: Aiuto urgente su array

    
    #include <iostream>
    
    using namespace std;
    
    int cerca_vocale (char c);
    
    int main()
    {
    char string[100];
    int cont=0;
    int cont2=0;
    char car;
    
    while(car != '.')
    {
    cin>>car;
    string[cont]=car;
    cont++;
    }
    
    for(int i=0;i < cont;i++)
    {
        if((cerca_vocale(string[i]) == 0 && cerca_vocale(string[i+1]) == 0) || (cerca_vocale(string[i]) == 1 && cerca_vocale(string[i+1]) == 1))
            cont2++;
    }
    
    cout<<cont2;
    return 0;
    }
    
    int cerca_vocale (char c)
    {
        if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
            return 1;
        return 0;
    }
    
    Credo sia abbastanza intuitivo, semplice e sintentico. Cercavi in tutti i modi di complicarti la vita quando con una semplice funzione che controllava ogni carattere e tolta dal main per dare più leggibilità al codice ti semplificava tutto. Poi la logica del for è semplice se trova due vocali di fila o due consonanti di fila aumenta il conteggio. Spero di esserti stato d'aiuto e ricorda...chi programma a capodanno programma tutto l'anno! ahahahah
  • Re: Aiuto urgente su array

    Davvero sono proprio un idiota.... grazie mille a tutti
Devi accedere o registrarti per scrivere nel forum
8 risposte