Switch e while?

di il
4 risposte

Switch e while?

Salve di nuovo, ho creato un programma ma ho qualche problema..nell'esecuzione il ciclo non termina..entrambi..questo è il codice:
(la traccia è presente nel programma)
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    cout << "A scelta dell'utente, calcola il fattoriale di un numero, la somma dei primi\n" <<
    "N numeri pari (con N inserito da tastiera) o l'mcd tra due numeri";
    
    cout << "Selezionare l'opzione:\n" <<
    "1) Fattoriale di un numero\n" <<
    "2) La somma dei primi N numeri pari\n" <<
    "3) Mcd tra due numeri\n\n" <<
    "Quale opzione scegli? (1, 2, 3)\n";

    int Opz;
    int N;
    double A;
    double B;
    int i = 0;
    
    do
    {
        cin >> Opz;
        if (Opz == 1 || Opz == 2 || Opz == 3)
        {
            break;
        }
        cout << "Il numero inserito non e' valido, riprova\n";
    } while (Opz != 1 );
    cout << "\n\n";
    switch(Opz)
    {
        case 1:
            cout << "Calcolo del fattoriale\nInserisci un numero\n";
            cin >> A;
            N == A;
            
            
            while (i < N) // IL PROGRAMMA NON ESCE DAL CICLO
            {
                A *= (A - 1);
                N += 1;
            }
            cout << "Il fattoriale e' " << A;
            
            
            break;
            
        case 2:
            cout << "Somma dei numeri pari\n";
            cout << "Quanti numeri devo considerare?\n";
            cin >> N;
            
            while (i < N);
            {
                cout << "\nInserisci un numero\n";
                cin >> A;
                if ((int)A % 2 == 0) // IL PROGRAMMA NON ESCE DAL CICLO
                {
                 B += A;
                }
                i += 1;
            }
            cout << "La somma dei numeri pari e' " << B;
            break;
            
        case 3:
            cout << "caso 3 da continuare";
            break;
    }
    
    
    cin.ignore(100, '\n');
    cin.get();
    return EXIT_SUCCESS;
}

4 Risposte

  • Re: Switch e while?

    DI quale ciclo parli dato che ce ne sono tanti ?
  • Re: Switch e while?

    oregon ha scritto:


    DI quale ciclo parli dato che ce ne sono tanti ?
    Ho messo dei commenti vicino (Ora in stampatello):
    uno è questo:
                while (i < N) // IL PROGRAMMA NON ESCE DAL CICLO
                {
                    A *= (A - 1);
                    N += 1;
                }
    l'altro è:
                while (i < N);
                {
                    cout << "\nInserisci un numero\n";
                    cin >> A;
                    if ((int)A % 2 == 0) // IL PROGRAMMA NON ESCE DAL CICLO
                    {
                     B += A;
                    }
                    i += 1;
                }
  • Re: Switch e while?

    Nel primo incrementi N anziché i, quindi la condizione i < N è sempre vera se i in partenza è minore di N.

    Nel secondo caso c'è un errore di battitura, devi togliere il ";" alla fine di "while (i < N);".
  • Re: Switch e while?

    dvaosta ha scritto:


    nel primo incrementi N anziché i, quindi la condizione i < N è sempre vera se i in partenza è minore di N.

    Nel secondo caso c'è un errore di battitura, devi togliere il ";" alla fine di "while (i < N);".
    grazie..e poi avevo anche usato l'operatore booleano "==" invece di "="
Devi accedere o registrarti per scrivere nel forum
4 risposte