Проблем със задачата Min Max Sum Average

Проблем със задачата Min Max Sum Average
0

Когато тествам с примерните данни, ми дава верен отговор. Също така мисля, че съм спазила всички изисквания за вид на променливите, въпреки че в условието веднъж се говори за реални числа и веднъж за “valid integer numbers”. Също така ми дава и " Short circuit" в някои от случаите. Това е кода ми https://pastebin.com/NPr6kkeF. Благодаря предварително!

Направи си number да е double, а не int, би трябвало така да е ок. като го зададеш int то ще вземе само първата цифра, а на теб ти трябва да сравняваш цялото число, включително и след запетайката.

мисля, че и това пробвах, но ще проверя още веднъж. благодаря за идеята

Забравих да добавя, въведи си DecimalFormat (“0.00”)

Може би това е проблемът, защото с промяната на числата в double ми дава същата грешка. Къде да променя формата, в настройките на компютъра ли, бях срещала указания в някаква задача отдавна, но не ми даде грешка и не съм ги слушала внимателно, а сега не ги откривам.

Здравей,
не виждам условието, но освен ако е зададено, че числата ще са ти в интервал [-10000, 10000],
не би трябвало да задаваш изкуствено такива начални стойности:

double min = 10000;
double max = -10000;

т.като ако примерният ти вход е, да кажем:

3
-11000
-12000
-15000,

твоят код ще показва -10000 като max, което е грешно.

Пробвай с
double min = Double.MAX_VALUE;
double max = Double.MIN_VALUE;
или им задай за първоначална стойност първото число от input-a.

Успех :slight_smile:

1 Like

Здравей,
така са зададени, по принцип и аз ползвам крайните стойности. но и не зная каква точно грешка е short circuit, за да се ориентирам какво да търся.
Благодаря!

В началото трябва да сложиш import:

import java.text.DecimalFormat;

А в кода:
DecimalFormat името = new DecimalFormat(“0.00”); // като сложиш нули ще ти принтира точно толкова знаци след точката, ако сложиш например “0.0#” ще ти принтира само един знак след точката, а с “0.##” ще ти принтира само първото число.

после в принта слагаш:
System.out.printf(“min = %.2f%n”, името.format(min)); //и така за всички .

Дано това помогне :slight_smile:

Благодаря, пробвах, но явно имам някаква грешка в логиката, която не виждам. Мен и преди това ми излизаха правилно форматирани отговорите, а със съобщението short circuit се сблъсквам за първи път.

Алтернатива е да прочетеш числата като String, да ги парснеш към Double, за да извършиш необходимите проверки и да принтираш съответният String като краен резултат :slight_smile:

Ето линк към моето решение, единствената разлика с твоето мисля, че е че съм сложила rounding mode, to minawa na 100% :slight_smile:

https://pastebin.com/miEWpNT7

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

1 Like