1. BENVENUTO SU CONSOLE TRIBE

    Benvenuto, stai navigando nella nostra community come ospite

    Avere un account su Console Tribe ti permetterà di creare e partecipare alle discussioni e al mercatino, organizzare tornei e partite online, iniziare conversazioni personali con gli altri giocatori del forum e di utilizzare tutte le funzioni di questo sito.

    Registra il tuo account in meno di 5 secondi, se vuoi puoi sfruttare i login social via Facebook, Google Plus o Twitter.

"expected primary-expression before "else" ?

Discussione in 'Computer & Technology' iniziata da mattokun, 5 Ottobre 2008.

Status Discussione:
Chiusa ad ulteriori risposte.
  1. mattokun

    mattokun Tribe Member

    Registrato:
    30 Dicembre 2007
    Messaggi:
    2.789
    "Mi Piace" ricevuti:
    465
    Punteggio:
    36
    Località:
    Gran Ducato di Toscana - Firenze
    Sera a tutti, sono alle prese con un'inutile programma per la scuola, sostanzialmente devo far scrivere al programma qual'è, tra i 3, il numero maggiore.
    Il programma in questione è questo:

    Codice:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int n1, n2, n3;
        cout << "inserisci n1" << endl;
        cin >> n1;
        cout << "Inserisci n2" << endl;
        cin >> n2;
        cout << "Inserisci n23" << endl;
        cin >> n3;
        if (n1<n2)
         {
                   if (n2<n3)
                    {
                              cout << endl << "Il maggiore è: " << n3;
                               }
                   else
                    {
                        cout << endl << "Il maggiore è: " << n2;
                        }
       [COLOR="Red"] else [/COLOR]
        {
             cout << endl << "Il maggiore è: " << n1;
             }
        }
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    Il problema è che alla riga 25, segnata di rosso, mi segnala il seguente errore "expected primary-expression before "else"", a guardare il programma non riesco a capire cosa ho sbagliato, sul mio libro d'informatica manca ci sono spiegati i programmi con 2 o più if, e su internet ho trovato solo roba in inglese, e sinceramente non riesco a capire certe parole tecniche =\

    Qualcuno mi sa dire dov'è l'errore?
    Grazie mille.
    Ultima modifica: 5 Ottobre 2008
  2. t3o

    t3o Tribe Member

    Registrato:
    27 Agosto 2003
    Messaggi:
    13.251
    "Mi Piace" ricevuti:
    2
    Punteggio:
    697
    non puoi mettere if-else-else...
    devi usare
    if(...){...}
    else if(...){...}
    else if(...){...}

    t3o ha aggiunto 6 Minuti e 12 Secondi più tardi...

    Ti consiglio di formattare bene il testo quando programmi... allinea sempre le graffe ad esempio...;)

    Comunque, così com'è non funziona, o meglio funziona solo nel caso in cui il primo test dia true.

    Se invece ad esempio
    n1=2
    n2=1
    n3=3

    al primo test da false e tu ritorni come risultato che il più grande è n1... invece è n3 il più grande...;)
    Ultima modifica: 5 Ottobre 2008
  3. mattokun

    mattokun Tribe Member

    Registrato:
    30 Dicembre 2007
    Messaggi:
    2.789
    "Mi Piace" ricevuti:
    465
    Punteggio:
    36
    Località:
    Gran Ducato di Toscana - Firenze
    Veramente n2 e n3 li prende...
    Cioè, se n3, o n2, è il numero maggiore allora lo scrive, se invece è n1 il maggiore semplicemente mi dice di prendere un tasto per continuare...
    Comunque grazie mille per la risposta e i suggerimenti ;)
  4. t3o

    t3o Tribe Member

    Registrato:
    27 Agosto 2003
    Messaggi:
    13.251
    "Mi Piace" ricevuti:
    2
    Punteggio:
    697
    ma non hai capito quand'è che scazza... rileggi l'esempio che ti ho fatto sopra...
  5. mattokun

    mattokun Tribe Member

    Registrato:
    30 Dicembre 2007
    Messaggi:
    2.789
    "Mi Piace" ricevuti:
    465
    Punteggio:
    36
    Località:
    Gran Ducato di Toscana - Firenze
    Ah giusto, letto male...
    Quindi dovrei aggiungere un altro if con n1

    EDIT:No, ho detto una cazzata =\
    Ultima modifica: 5 Ottobre 2008
  6. Oogabada

    Oogabada Administrator

    Registrato:
    6 Dicembre 2004
    Messaggi:
    17.952
    "Mi Piace" ricevuti:
    840
    Punteggio:
    1.546
    Località:
    San Vito dei Normanni, Italy
    PSN Tag:
    Oogabada
    Xbox Live Tag:
    Oogabada
    Nintendo Network ID:
    Oogabada
    Prima dell'else ci vuole una graffa e devi toglierne una dopo.

    Codice:
       if (n1<n2)
         {
                   if (n2<n3)
                    {
                     cout << endl << "Il maggiore è: " << n3;
                     }
                   else
                    {
                     cout << endl << "Il maggiore è: " << n2;
                     }
          }
         else
          {
          cout << endl << "Il maggiore è: " << n1;
          }
  7. mattokun

    mattokun Tribe Member

    Registrato:
    30 Dicembre 2007
    Messaggi:
    2.789
    "Mi Piace" ricevuti:
    465
    Punteggio:
    36
    Località:
    Gran Ducato di Toscana - Firenze
    Si, fino a qui ci sono, però come ha detto t3o nel caso in cui al primo if mi da falso in qualsiasi caso a me scrive che n1 è maggiore di n3 nonostante non sia vero...
    Grazie per le risposte, ora vedo di riuscirci da solo ;)
  8. t3o

    t3o Tribe Member

    Registrato:
    27 Agosto 2003
    Messaggi:
    13.251
    "Mi Piace" ricevuti:
    2
    Punteggio:
    697
    david... lassssia perdere...:asd:

    Codice:
    if(n1>n2)
    	{
    		if (n1>n3)
    			{
    				//n1 è il massimo
    			}
    		else
    			{
    				//n3 è il massimo
    			}
    	}
    else 
    	{
    		if(n2>n3)
    			{
    				//n2 è il massimo
    			}
    		else
    			{
    				//n3 è il massimo
    			}	
    			
    	}
    
    
    poi dovresti gestire i casi di uguaglianza...
    potresti dire semplicemente che in tali casi consideri quello con pedice minore mettendo tutte disuguaglianze in senso lato al posto di quelle in senso stretto...
    ;)
  9. Oogabada

    Oogabada Administrator

    Registrato:
    6 Dicembre 2004
    Messaggi:
    17.952
    "Mi Piace" ricevuti:
    840
    Punteggio:
    1.546
    Località:
    San Vito dei Normanni, Italy
    PSN Tag:
    Oogabada
    Xbox Live Tag:
    Oogabada
    Nintendo Network ID:
    Oogabada
    Ok, scusi ingenniere.
  10. mattokun

    mattokun Tribe Member

    Registrato:
    30 Dicembre 2007
    Messaggi:
    2.789
    "Mi Piace" ricevuti:
    465
    Punteggio:
    36
    Località:
    Gran Ducato di Toscana - Firenze
    Ah ecco come andava impostato l'altro if ;D
    Grazie mille, problema più che risolto :D
Status Discussione:
Chiusa ad ulteriori risposte.