27/07/12 15:51
Archer312
Salve a tutti, devo scrivere un programma che determina il numero più grande ed il numero più piccolo.
Così ho richiamato 5 variabili di tipo int, ho fatto assegnare manualmente i valori di ciascuna delle variabili.
Ma il programma funziona solo se il valore più grande non è uguale ad un'altra variabile, quindi se abbiamo questo caso:
numero1: 10
numero2: 20
numero3: 10
numero4: 20
numero5: 10
il programma non restituirà nulla...
c'è un modo per risolvere?
Cioè, anche se ci sono due numeri uguali più grandi o più piccoli, farli comunque restituire?
Così ho richiamato 5 variabili di tipo int, ho fatto assegnare manualmente i valori di ciascuna delle variabili.
import java.util.Scanner; public class Determina { public static void main(String args[]) { int a, b, c, d, e; Scanner input = new Scanner( System.in ); System.out.print( "numero1: " ); a = input.nextInt(); System.out.print( "numero2: " ); b = input.nextInt(); System.out.print( "numero3: " ); c = input.nextInt(); System.out.print( "numero4: " ); d = input.nextInt(); System.out.print( "numero5: " ); e = input.nextInt(); if( a>b && a>c && a>d && a>e ) System.out.printf( "%s %d\n", "il numero più grande risulta essere", a ); if( b>a && b>c && b>d && b>e ) System.out.printf( "%s %d\n", "il numero più grande risulta essere", b ); if( c>a && c>b && c>d && c>e ) System.out.printf( "%s %d\n", "il numero più grande risulta essere", c ); if( d>a && d>b && d>c && d>e ) System.out.printf( "%s %d\n", "il numero più grande risulta essere", d ); if( e>a && e>b && e>c && e>d ) System.out.printf( "%s %d\n", "il numero più grande risulta essere", e ); else if( a==b && b==c && c==d && d==e) System.out.println("tutti i numeri sono uguali"); if( a<b && a<c && a<d && a<e ) System.out.printf( "%s %d\n", "mentre il numero più piccolo risulta essere", a ); if( b<a && b<c && b<d && b<e ) System.out.printf( "%s %d\n", "mentre il numero più piccolo risulta essere", b ); if( c<a && c<b && c<d && c<e ) System.out.printf( "%s %d\n", "mentre il numero più piccolo risulta essere", c ); if( d<a && d<b && d<c && d<e ) System.out.printf( "%s %d\n", "mentre il numero più piccolo risulta essere", d ); if( e<a && e<b && e<c && e<d ) System.out.printf( "%s %d\n", "mentre il numero più piccolo risulta essere", c ); } }
Ma il programma funziona solo se il valore più grande non è uguale ad un'altra variabile, quindi se abbiamo questo caso:
numero1: 10
numero2: 20
numero3: 10
numero4: 20
numero5: 10
il programma non restituirà nulla...
c'è un modo per risolvere?
Cioè, anche se ci sono due numeri uguali più grandi o più piccoli, farli comunque restituire?
aaa