Здравейте.
Написал съм по сленият начин задачата: https://pastebin.com/F0s0AQrM, но не получавам никакви точки. “Test case#1- wrong answer; Test case#2- short circuit”
Ако може някой да ми съдейства?
Здравейте.
Написал съм по сленият начин задачата: https://pastebin.com/F0s0AQrM, но не получавам никакви точки. “Test case#1- wrong answer; Test case#2- short circuit”
Ако може някой да ми съдейства?
Здравей,
не помня условието на задачата, но предполагам, че не печаташ резултата както се очаква - например, ако резултатът ти е double 5.0 дали се очаква да отпечаташ 5.00 или 5. Погледни това?
Условието:
Write a program that finds the biggest of three numbers that are read from the console.
[-200, 200]
.Промених формата на печатане и сега имам 50/100, но пак не мога да намеря къде бъркам (явно аз нещо не декларирам/печатам правилно
import java.util.Scanner;
public class BiggestOfThree {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double a = Double.parseDouble(scanner.nextLine());
double b = Double.parseDouble(scanner.nextLine());
double c = Double.parseDouble(scanner.nextLine());
if (a >= -200.00 & a <= 200.00 & b >= -200.00 & b <= 200.00 & c >= -200.00 & c <= 200.00) {
if (a >= b & a >= c) {
System.out.printf("%.0f",a);
} else System.out.printf("%.0f",Math.max(b, c));
}
}
}
Здравей,
А няма ли примерен инпут/аутпут? В повечето задачи изрично е казано да печаташ например с 2 знака след десетичната запетая.
“%.0f” няма как да ти свърши работа, защото за целите числа ще се държи очаквано, но за double, ще ти ги закъгля до цели и ще води до 100% грешен отговор.
Ако няма указание за печатане, бих заложила, че при инпут 0, 0, 3.5, трябва да отпечаташ “3.5” , а при инпут 0, 0, 3, трябва да отпечаташ “3” (а не “3.0”, както би станало ако го разглеждаш като double, и не “4” както би отпечатал в момента кодът ти).
Това би постигнал с един if/else -> ако числото ти е равно на числото ти, кастнато към int, отпечатай int стойността, else -> отпечатай double стойността.
Здравей,
Аз я реших като първо се въвеждат числата в стрингове и после се парсват за да се сравняват. След като се сравнят отпечатвам стринга, а не парснатото число.
възможно ли е да ми изпратих решението да го разгледам?
Виждам, че бъркам точно в печатането, но не мога да си оправя оутпут-а.
Ако ми помогнеш с кастването ще съм благодарен.
Опитах се, но явно пак бъркам някъде. След съвета за кастването се опитах да нарпавя нещо и получавам 92/100. Ето го и самият код :
Моето решение е страшно идиотско, понеже вероятно ми е било първата решена задача тук изобщо но накрая съм правила това:
double max >>>
if (max == (int) max) {
System.out.println((int) max);
} else {
System.out.println(max);
}
Дано помага
Здравейте и аз се мъча със същата задача, може ли малко съвет. В intellij run-вам кода. И всичко е наред, но judge не е съгласен с решението ми.
Ето го кода:
public class Main {
public static void main(String[] args){
// load scanner
Scanner scanner = new Scanner(System.in);
// read input
int x1 = scanner.nextInt();
int x2 = scanner.nextInt();
int x3 = scanner.nextInt();
// compare input & print the biggest
while ((x1>=-200 && x1<=200) && (x2>=-200 && x2<=200) && (x3>=-200 && x3<=200)){
if (x1>x2 && x2>x3){
System.out.println(x1);
} else if (x1<x2 && x2>x3){
System.out.println(x2);
} else {
System.out.println(x3);
}
break;
}}}
Здравей,
имаш малко пропуски:
първо (гледайки горните коментари) явно се очакват double, а не int , така че изпускаш част от тестовите случаи, в които не ти подават цели числа и кодът ти гърми (не съм гледала условието, ако са го изменили се извинявам)
Второ, нямаш никъде равенство в if/else-овете, което пак предполага, че ще изтървеш някой случай.
Пробвай примерен вход:
2 1 1
който поради липса на подходящ if, ще влезе чак в else-a и погрешно ще отпечата 1 за резултат.
И последно - този while няма смисъл от него - ти не циклиш нищо, а влизаш еднократно в него. Условието просто уточнява, че зададените числа ще са между -200 и +200 , няма нужда да го валидираш изрично (ако имаше такава нужда, щеше да е указано какво трябва да се случи, ако инпутът не влиза в този range )
Надявам се да съм била полезна, успех!