# Uporządkowywanie trzech liczb - dla niektórych kombinacji brak wyniku

0

Witam, czy wie ktoś w czym tkwi błąd? program ma uporządkować w kolejności 3 liczby ale np dla kombinacji liczb 1, 2, 1 nie wyświetla w ogóle wyniku. nie wiem dlaczego. ani błędu ani wyniku

``````package program;

import java.util.Scanner;

public class program {

public static void main(String[] args) {
Scanner sc = new Scanner  (System.in) ;

System.out.println("podaj a:");
int a=sc.nextInt();
System.out.println("podaj b:");
int b=sc.nextInt();
System.out.println("podaj c:");
int c=sc.nextInt();

if (a==b && b==c)
System.out.println(a +","+ b +","+ c);
else if (a==b && b<c )
System.out.println(a+","+b+","+c);
else if (a==b && b>c)
System.out.println(c+","+a+","+b);

else if (a==b && b>c)
System.out.println(a+","+c+","+b);

else if (a==c && b<c)
System.out.println(b+","+a+","+c);
else if (b==c && b<a)
System.out.println(b+","+c+","+a);
else if (b==c && b>a)
System.out.println(a+","+b+","+c);

else if (a<b && b<c)
System.out.println(a+","+b+","+c);

else if (a<b && b>c)

{
if (a>c)
System.out.println(c+","+a+","+b);
else if (a<c)
System.out.println(a+","+c+","+b);
}

else if (a>b && b<c)
{
if (a<c)
System.out.println(b+","+a+","+c);
else if (a>c)
System.out.println(b+","+c+","+a);

}

}}
``````
0

Witam, poniżej poprawiłem Twoją wersję.

``````Scanner sc = new Scanner(System.in);

System.out.println("podaj a:");
int a = sc.nextInt();
System.out.println("podaj b:");
int b = sc.nextInt();
System.out.println("podaj c:");
int c = sc.nextInt();

if (a == b && b == c) {
System.out.println(a + "," + b + "," + c);
} else if (a == b && b < c) {
System.out.println(a + "," + b + "," + c);
} else if (a == b && b > c) {
System.out.println(c + "," + a + "," + b);
} else if (b == c && a < b) {
System.out.println(a + "," + b + "," + c);
} else if (b == c && a > b) {
System.out.println(b + "," + c + "," + a);
} else if (a == c && b < c) {
System.out.println(b + "," + a + "," + c);
} else if (a == c && b > c) {
System.out.println(a + "," + c + "," + b);
} else if (a < b && b < c) {
System.out.println(a + "," + b + "," + c);
} else if (a < b && c < b && a > c) {
System.out.println(c + "," + a + "," + b);
} else if (a < b && c < b && a < c) {
System.out.println(a + "," + c + "," + b);
} else if (c < b && b < a) {
System.out.println(c + "," + b + "," + a);
}
}
}
``````

`dodanie znacznika <code class="java"> - fp`

0
``````if(c < a) {c ^= a; a ^= c; c ^= a;}
if(b < a) {b ^= a; a ^= b; b ^= a;}
if(c < b) {c ^= b; b ^= c; c ^= b;}
System.out.println(a + "," + b + "," + c);
``````
1

Tak mała uwaga co do kodu. To takie ify wyglądają nieestetycznie. Co w przypadku gdybyś miał więcej liczb? Zrobiłaby Ci się ogromna drabinka ifów. Łatwiej chyba napisać samemu jakąś metodę sortującą, lub skorzystać z gotowych np. dodając liczby do tablicy lub kolekcji i wywoływać metody Arrays.sort lub Collections.sort zależnie od tego czy skorzystałeś z tablic czy kolekcji.