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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0