Самый большой из пяти номеров - PullRequest
0 голосов
/ 07 апреля 2020

У меня проблема с домашней работой. Моя программа должна работать с целыми числами и числами с плавающей точкой.

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

    int a=sc.nextInt();
    int b=sc.nextInt();
    int c=sc.nextInt();
    int d=sc.nextInt();
    int e=sc.nextInt();

    if ((a >= b) && (a >= c) && (a >= d) && (a >= e)) { // a >= b,c,d,e
        System.out.println (a);
    } else if ((b >= c) && (b >= d) && (b >= e)) {      // b >= c,d,e
        System.out.println ( b);
    } else if ((c >= d) && (c >= e)) {                  // c >= d,e
        System.out.println ( c);
    } else if (d >= e) {                                // d >= e
        System.out.println ( d);
    } else {                                            // e > d
        System.out.println (e);
    }
}

Что не так с кодом?

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Если оно должно работать для int и чисел с плавающей точкой, тогда вы должны использовать Scannet.nextDouble() для всех пяти значений (и они должны быть double). То есть int имеет нет компонента с плавающей запятой. Что-то вроде

Scanner sc = new Scanner(System.in);
double a = sc.nextDouble(), b = sc.nextDouble(), c = sc.nextDouble(),
        d = sc.nextDouble(), e = sc.nextDouble();
System.out.println(Math.max(Math.max(Math.max(Math.max(a, b), c), d), e));
0 голосов
/ 07 апреля 2020

Вы можете использовать List с классом Collections. Не уверен, что это входит в параметры вашего назначения.

public static void main(String [] args)
{
 Scanner sc = new Scanner(System.in);
 List<Double> nums = new ArrayList<>();

 for(int x = 0; x < 5; x++)
 {
  nums.add(sc.nextDouble());
 }

 System.out.println("The biggest number entered is " + Collections.max(nums));
}
...