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 è:
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;
}
}
da main:
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());
}
}
Il punto è che da terminale il programma stampa l'ultimo numero uguale a quello precedente.
es se scrivo : 5,0
3,0
4,0
output: 4,0
5,0
5,0
dov'è che ho sbagliato?