Min Max Sum Average javaScript - need help

Здравейте! Имам проблем с тази задача, във vs code работи коректно, но при срещата с джъдж е тотал щета, според мен не имплементирам правилно входните данни, които трябва да получа в кода, когато я променям на синтаксиса на джъдж. Ако някой има решение на задачата, ще съм благодарен да го сподели, за да го видя и да разбера, къде бъркам. Ето условието:

Min Max Sum Average

Description

Write a program that reads from the console a sequence of N real numbers and returns the minimal , the maximal number, the sum and the average of all numbers (displayed with 2 digits after the decimal point).

  • The input starts by the number N (alone in a line) followed by N lines, each holding an real number.
  • The output is like in the examples below.

Input

  • On the first line, you will receive the number N .
  • On each of the next N lines, you will receive a single real number.

Output

  • You output must always consist of exactly 4 lines - the minimal element on the first line, the maximal on the second, the sum on the third and the average on the fourth, in the following format:
min=3.00
max=6.00
sum=9.00
avg=4.50

Пейстни си кода, че да може да проверим къде ти се чупи.
Внимавай какви стойности даваш на max и min

Привет!
Ето моя код:

Дано е от помощ.
Поздрави!

Благодаря! Само не разбирам принципа на намиране на най-малко и голямо число…

Здравей!
Конкретно в тази задача е указано, че входните числа ще са между -10 000 и 10 000.
Т.е. всяко въведено ще е по-голямо от -10 001, респ. - по-малко от 10 001. Затова първоначално са инициализирани като най-голямо и най-малко :slight_smile:
Ако нямах такава информация, щях да ползвам Double.MAX_VALUE и Double.MIN_VALUE.
Поздрави!

1 Like

Ясно, че е оказано, че числата са в определен рейндж, само не разбирам защо, когато търсим от подадените числа най-голямото и най-малкото ги сравняваме с този рейндж, на минимално и оптимално число?

Искаме да определим от въведените числа, кое е най-голямото, за да го запишем в max променливата, и кое е най-малкото, за да го запишем в min променливата. По-късно ги принтираме

2 Likes

Ясно!!! Много благодаря!

Привет,

Моя код също гърми но не мога да разбера защо :slightly_frowning_face:

    int lines = scanner.nextInt();
    double average = 0;
    double sum = 0;
    double max = -10000;
    double min = 10000;

    for (int i = 0; i < lines; i++) {
        double temp = scanner.nextDouble();
        average = average + temp;
        sum = sum + temp;

        if (max < temp) {
            max = temp;
        }
        if (min > temp) {
            min = temp;
        }
    }
       average = average/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",(average));

Алекс

Искаш да четеш юзър инпут ,но не си създал обект от клас Scanner.

Липсва ти това:

Scanner scanner = new Scanner(System.in);

Числата нямат спейс след = ами са залепени например така ги иска джъдж:

min=-1.00 
max=4.00 
sum=5.00 
avg=1.67 

Ти принтираш в момента :

min= -1.00 
max= 4.00 
sum= 5.00
avg= 1.67

Scanner е там просто не съв го копирал - проблема е в so called "Short circuit ".

image

По отношение на разстоянието - да ще го коригирам за него имам индикация - wrong answer

Здравей,
сигурен ли си, че си добавил и

import java.util.Scanner;

в judge ? ако не си, от това ти дава грешката, защото ръннах кода ти сега и ми го прие на 100% (махнах и излишните спейсове).

Успех! :slight_smile:

import java.text.DecimalFormat;
import java.util.Scanner;

public class MinMaxSumAverage {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int lines = scanner.nextInt();
        double average = 0;
        double sum = 0;
        double max = -10001;
        double min = 10001;
    
        for (int i = 0; i < lines; i++) {
            double temp = scanner.nextDouble();
            sum = sum + temp;
    
            if (max < temp) {
                max = temp;
            }
            if (min > temp) {
                min = temp;
            }
        }
           average = 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 %n",(average));
    }
}

Кодът ти работи чудесно с малките промени, които описах.

Много благодаря да помощта, в действителност бях пропуснал двете - дефиниция за класа import java.text.DecimalFormat; както и коректното дефиниране на ограниченията за стойностите на min и мах (не 10000 а 10001)
Поздрави