Problema con programma che utilizza IF-ELSE

di il
5 risposte

Problema con programma che utilizza IF-ELSE

Salve ragazzi, non riesco a capire perchè il mio programma funzioni "a metà", ovvero funziona correttamente nel primo e nel secondo caso, ma se il valore maggiore è il terzo la console segnala comunque o il primo o il secondo... potete aiutarmi?
//Scrivere un programma che richieda in ingresso tre valori interi distinti e ne determini il maggiore.
#include <stdio.h>
#include "stdafx.h"

int n1;
int n2;
int n3;
char close;

int main()
{
	printf("INSERISCI TRE VALORI INTERI E TI DIRO' QUAL'E' IL NUMERO MAGGIORE \n\n");
	printf("Inserisci il primo numero: ");
	scanf_s("%d", &n1);
	printf("Inserisci il secondo numero: ");
	scanf_s("%d", &n2);
	printf("Inserisci il terzo numero: ");
	scanf_s("%d", &n3);
	if (n1 > n2 && n3)
		printf("\nIl numero maggiore e': %d", n1);
	else if (n2 > n1 && n3)
		printf("\nIl numero maggiore e': %d", n2);
	else if (n3 > n1 && n2)
		printf("\nIl numero maggiore e': %d", n3);
	
	scanf_s("%d");
    return 0;
}

5 Risposte

  • Re: Problema con programma che utilizza IF-ELSE

    Le condizioni nelle if

    if (n1 > n2 && n3)

    non si scrivono così ... Forse intendi

    if (n1 > n2 && n1 > n3)
  • Re: Problema con programma che utilizza IF-ELSE

    oregon ha scritto:


    Le condizioni nelle if

    if (n1 > n2 && n3)

    non si scrivono così ... Forse intendi

    if (n1 > n2 && n1 > n3)
    Se faccio cosi succede il problema opposto... ovvero, se il numero maggiore è il terzo la consolo me lo visualizza correttamente, se il numero maggiore, invece, è il primo od il secondo la console visualizza sia quello giusto sia il terzo...
    //Scrivere un programma che richieda in ingresso tre valori interi distinti e ne determini il maggiore.
    #include <stdio.h>
    #include "stdafx.h"
    
    int n1;
    int n2;
    int n3;
    char close;
    
    int main()
    {
    	printf("INSERISCI TRE VALORI INTERI E TI DIRO' QUAL'E' IL NUMERO MAGGIORE \n\n");
    	printf("Inserisci il primo numero: ");
    	scanf_s("%d", &n1);
    	printf("Inserisci il secondo numero: ");
    	scanf_s("%d", &n2);
    	printf("Inserisci il terzo numero: ");
    	scanf_s("%d", &n3);
    	if (n1 > n2 && n1 > n3)
    		printf("\nIl numero maggiore e': %d", n1);
    	else if (n2 > n1 && n2 > n3)
    		printf("\nIl numero maggiore e': %d", n2);
    	else if (n3 > n1 && n3 > n2);
    		printf("\nIl numero maggiore e': %d", n3);
    	
    	scanf_s("%d");
        return 0;
    }
    
    
  • Re: Problema con programma che utilizza IF-ELSE

    OSSERVA STRA-ATTENTAMENTE che cosa hai scritto nella riga dell'IF della terza condizione.

    RICORDA, OGNI CARATTERE E' IMPORTANTE in un programma, anche gli spazi O LA PUNTEGGIATURA.

    Sei incappato in un classico errore di sbaglio, molto subdolo e molto complicato da trovare.
  • Re: Problema con programma che utilizza IF-ELSE

    Di solito i ; vengono dimenticati XD
  • Re: Problema con programma che utilizza IF-ELSE

    Oddio, che errore del cavolo... adesso, senza quel ";", funziona perfettamente... grazie ragazzi!
Devi accedere o registrarti per scrivere nel forum
5 risposte