Sort Three Numbers

Здравейте,

Имам проблем с решаването на задачата по- долу:

Sort Three Numbers

Description

Write a program that enters 3 real numbers and prints them sorted in descending order.

  • Use nested if statements.
  • Don’t use arrays and the built-in sorting functionality.

Input

  • On the first three lines, you will receive the three numbers, each on a separate line.

Output

  • Output a single line on the console - the sorted numbers, separated by a white space

Това е моето решение, но ми дава някаква грешк и не мога да я разбера къде е проблема.
Благодаря предварително.

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input1 = scanner.nextLine();
int a = Integer.parseInt(input1);
String input2 = scanner.nextLine();
int b = Integer.parseInt(input2);
String input3 = scanner.nextLine();
int c = Integer.parseInt(input3);

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

    } else if (b > a && b > c) {
        System.out.print(b + " ");
        if (a > c)
        System.out.print(a + " " + c);
        else
        System.out.print(c + " " + a);

    } else if (c > b && c > a) {
        System.out.print(c + " ");
        if (a > c)
        System.out.print(a + " " + c);
        else
    System.out.print(c + " " + a);
    }
}

}

Здравей,
понеже ползваш само > и < и няма равенства, ако ти подадат повтаряща се цифра, няма да принтираш нищо,защото няма да влезе в никой от кейсовете.

освен това в последния else if имаш typo и вместо “b” печаташ пак “c”
if (a > c)
System.out.print(a + " " + c);
System.out.print(c + " " + a);

else if (c > b && c > a) {
            System.out.print(c + " ");
            if (a > c)
                System.out.print(a + " " + c);
            else
                System.out.print(c + " " + a);
        } 

Успех :slight_smile:

edit:
IntelliJ би трябвало да ти подсказва, че този if e unreachable code :wink:
ifelse

Здравей,

Благодаря за помощта, сега работи. Дава ми 90 точки не 100, защото при една от проверките дава грешка, но все пак при повечето работи :slight_smile:

Поздрави,

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
int num1 = Integer.parseInt(input);
input = scanner.nextLine();
int num2 = Integer.parseInt(input);
input = scanner.nextLine();
int num3 = Integer.parseInt(input);

    if (num1 >= num2) {
        if (num1 >= num3) {
            if (num2 >= num3) {
                System.out.printf( num1 + " " + num2 + " " + num3);
            } else {
                System.out.printf(num1 + " " + num3 + " " + num2);
            }
        } else {
            System.out.printf(num3 + " " + num1 + " " + num2);
        }
    } else {
        if (num2 >= num3) {
            if (num1 >= num3) {
                System.out.printf( num2 + " " + num1 + " " + num3);
            } else {
                System.out.printf( num2 + " " + num3 + " " + num1);
            }
        } else {
            System.out.printf( num3 + "  " + num2 + " " + num1);
        }
    }

}

}

Здравей @patzoni,

Благодаря за предложеното решение.

Поздрави,