Esercizio c++

di il
13 risposte

Esercizio c++

Ciao ragazzi, ho bisogno ancora una volta del vostro aiuto
ho un problema con un esercizio
la traccia dice: "leggere una sequenza di numeri e inserire nella variabile X il valore 1 se ogni pari è seguito da un numero divisibile per 3, inserire 0 altrimenti. interrompere la sequenza quando viene inserito il valore 0 (che è escluso dalla valutazione)"
vi allego quello che ho fatto io, vorrei capire soprattutto perchè non va
 #include <iostream>
using namespace std;
int main()
{
	int f1, f2, x;
	cin >> f1;
	cin >> f2;
	if (f1 % 2 == 0 && f2 % 3 == 0)
	{
		x = 1;
	}
	else
	{
		x = 0;
	}
	while (f2!=0 || f1!=0)
	{
		cin >> f1;
		cin >> f2;
		
		if (x == 1)
		{
			if (f1 % 2 == 0 && f2 % 3 == 0 && f1 !=0 && f2!=0)
			{
				x = 1;
			}
			else
			{
				x = 0;
			}
		}
		else
		{
			x = 0;
		}
		
	} 
	return 0;
}

13 Risposte

  • Re: Esercizio c++

    Perché quel while?
  • Re: Esercizio c++

    Per poter uscire dal ciclo quando inserisco 0
  • Re: Esercizio c++

    Devi rivedere la logica.. l'input è uno solo non una coppia di variabili
  • Re: Esercizio c++

    Si, ma con una variabile come faccio a controllare due condizioni?
  • Re: Esercizio c++

    #include <iostream>
    using namespace std;
    int main()
    {
    	int f1, f2, x;
    	cin >> f1;
    	cin >> f2;
    	if (f1 % 2 == 0 && f2 % 3 == 0)
    	{
    		x = 1;
    	}
    	else
    	{
    		x = 0;
    	}
    	while (f2 != 0 || f1 != 0)
    	{
    		cin >> f1;
    		cin >> f2;
    
    		if (x == 1 && f1!=0 && f2!=0)
    		{
    			if (f1 % 2 == 0 && f2 % 3 == 0 )
    			{
    				x = 1;
    			}
    			else
    			{
    				x = 0;
    			}
    		}
    		
    
    	}
    	return 0;
    } 
    cosi esce però non si blocca il ciclo quando inserisco 0, si blocca al secondo 0 che inserisco
  • Re: Esercizio c++

    ylenia987654321 ha scritto:


    Si, ma con una variabile come faccio a controllare due condizioni?
    Ma infatti è sbagliata la logica. Se il primo input è zero allora X è zero e chiudi. Se il secondo input è zero, X è zero e chiudi. Se il secondo input non è zero, a quel punto puoi iniziare a ciclare
  • Re: Esercizio c++

    E come potrei fare?
  • Re: Esercizio c++

    Le variabili possono essere tante l'input uno solo controllato in un ciclo. Prova
  • Re: Esercizio c++

    Vabbè, tralasciando l'interpretazione dei casi limite
    
    #include <iostream>
    using namespace std;
    int main(){
        int f1 = 1, f2, x = 1;
        do{
            cin >> f2;  
            if(f1 % 2 == 0 && (f2 == 0 || f2 % 3 != 0))
                x = 0;       
            f1 = f2;
        }while(f2 != 0);  
        cout << "X = " << x;
        return 0;
    }
    
  • Re: Esercizio c++

    Ok all'inizio avevo fatto anche io cosí, però se =f2 succede che: se inserisco 2 e poi 3 quando inserirò un altro numero ad esempio 4 sarà 3 e di conseguenza non è verificata la condizione di un pari seguito da un numero divisibile per 3. non so se è chiaro il mio dubbio
  • Re: Esercizio c++

    {2, 3, 4, 3, 0} non verifica la condizione richiesta?
  • Re: Esercizio c++

    Perchè parte da 1?
  • Re: Esercizio c++

    Quando immetti il primo numero non devi fare il controllo dell'if. Se metti f 1 = 1 la condizione dell'if è automaticamente falsa al primo passaggio
Devi accedere o registrarti per scrivere nel forum
13 risposte