Min Max Sum Average

Някой може ли да ми обясни защо не ми минава решението, би следвало да работи,
и двата теста минават.

Привет,

Това, което ми направи впечатление е, че се принтират два пъти max т.е. на стойността на sum отново пишеш max. Виж по условие как точно трябва да изглежда форматът, който ще се принтира. Иначе другото мисля, че е ок.

Поздрави
Деан

Meрси това е от копи пействане, сега ми се налага само да подходя със различно решение, защото, два от тестовете не минават.

1 Like

Здравей, не мога да ти видя кода, но за test case 4 пробвай да дебъгнеш с инпут
1
-55

Би трябвало да се получи това:
min=-55.00
max=-55.00
sum=-55.00
avg=-55.00

Твоят отговор на тест кейс 4 няма как да е верен:
min= -55.00
max= 0.00
sum= -55.00
avg= -55.00
Ако min = -55 и max = 0, то sum = -55, но avg би било -27.50, а не -55.00.

Успех!:slight_smile:

1 Like

Здравей пак,
всъщност намерих проблема - Double.MIN_VALUE, което задаваш за първоначална стойност на largest, е положително число, близко до 0. Затова, ако ти подават само отрицателни числа, largest при теб си остава тази закръглена 0 >>>

Вариант е например да подадеш първото въведено число от поредицата и като largest, и като smallest и след това да проверяваш всяко следващо дали е > или < от него, както и сега правиш.
:slight_smile:

1 Like

В случая балъшки си реших проблемът като сложих largest = -100000 колкото е по условие,

Интересното е обаче защо не ми влезе във този иф стейтмънт.

ъпдейтнах кодът във условието.

1 Like

Аз имах същия проблем и много го мислих, точно същата грешка ми даваше, много ми помогна тази подсказка, много благодаря! Ето моят код:

import java.util.Scanner;

public class MinMaxAveSum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String numbers = sc.nextLine();
int lines = Integer.parseInt(numbers);
// double min = Double.MAX_VALUE;
double min = 100000;
double max = -100000;
double sum =0;
double avg =0;
double num =0;
for(int i =0; i<lines; i++){

     num = Double.parseDouble(sc.nextLine());

        if(min>num) {
            min = num;

        }
        if (max<num){
            max = num;
        }
        sum += num;
    }
    avg = sum /lines;

    System.out.printf("min=%.2f%n", min);
    System.out.printf("max=%.2f%n", max);
    System.out.printf("sum=%.2f%n", sum);
    System.out.printf("avg=%.2f", avg);


}

}