Ciao ho iniziato da poco a studiare java ed ho incontrato delle difficoltà nell'eseguire questo esercizio:
Scrivere un programma che riceva tre numeri in virgola mobile come dati in
ingresso, per poi stamparli in ordine crescente. (io ho sviluppato solo un caso)
es: 5,0
3,0
4,0
output: 3,0
4,0
5,0
Il mio codice è:
da main:codice:class Numeri{ double a,b,c; Numeri(){ a=0.0; b=0.0; c=0.0; } public void ordina(double x,double y,double z){ a=x; b=y; c=z; double temp=0.0; if(b<c) if(c<a) if(b<a){ temp=a; b=c; a=b; c=temp; }else temp=a; a=b; b=temp; } public double getA(){ return a; } public double getB(){ return b; } public double getC(){ return c; } }
Il punto è che da terminale il programma stampa l'ultimo numero uguale a quello precedente.codice:import java.util.Scanner; class Numeri1{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); System.out.println("scrivi 3 numeri"); double a=sc.nextDouble(); double b=sc.nextDouble(); double c=sc.nextDouble(); Numeri n=new Numeri(); n.ordina(a,b,c); System.out.println("i numeri in ordine"); System.out.println(n.getA()); System.out.println(n.getB()); System.out.println(n.getC()); } }
es se scrivo : 5,0
3,0
4,0
output: 4,0
5,0
5,0
dov'è che ho sbagliato?![]()

Rispondi quotando