07. Operations Between Numbers - Programming Basics -JAVA Test #5 (Incorrect answer)
Не мога да разбера защо и какво е грешно в решението ми на посочената. Judge ми дава 90% с грешка: Test #5 (Incorrect answer), но грешката не е показана.
Ето го и кода:
//----------------------------------------------------------------
import java.util.Scanner; public class NumberOps { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n1 = Integer.parseInt(scanner.nextLine()); int n2 = Integer.parseInt(scanner.nextLine()); char sign = scanner.nextLine().charAt(0); int res; switch (sign) { case '+': res = n1 + n2; printDefMsg(n1, sign, n2, res, evenOdd(res)); break; case '-': res = n1 - n2; printDefMsg(n1, sign, n2, res, evenOdd(res)); break; case '*': res = n1 * n2; printDefMsg(n1, sign, n2, res, evenOdd(res)); break; case '/': if (n2 == 0){ printZeroMsg(n1); } else { Double nd1 = n1 * 1.0; Double res1 = nd1 / n2; System.out.printf("%d %c %d = %.2f", n1, sign, n2, res1); } break; case '%': if (n2 == 0){ printZeroMsg(n1); } else { res = n1 % n2; System.out.printf("%d %c %d = %d", n1, sign, n2, res); } break; default: break; } } private static String evenOdd(int number){ String evenOrOdd = "even"; if (number % 2 == 1){ evenOrOdd = "odd"; } return evenOrOdd; } private static void printZeroMsg(int n1){ System.out.printf("Cannot divide %d by zero ", n1); } private static void printDefMsg(int n1, char sign, int n2, int res, String evenOdd){ System.out.printf("%d %c %d = %d - %s", n1, sign, n2, res, evenOdd); } }
//---------------------------------------------------------------------------------
Ще се радвам ако някой може да ми помогне да го дебъгна.
условие линк:
https://softuni.bg/trainings/resources/officedocument/37449/exercise-problem-descriptions-programming-basics-with-java-january-2019/2211
задача 8
пропуснал съм
https://softuni.bg/trainings/resources/officedocument/37449/exercise-problem-descriptions-programming-basics-with-java-january-2019/2211
задача 8
Не открих никаква грешка. Никога не съм се занимавал с Java и моето предположение, че грешката идва от някаква специфика на форматирането с printf функцията, с която не съм запознат. Иначе кода ти го проверих няколко пъти и не открих никаква грешка. Имаш един допълнителен интервал накрая в "Cannot divide {number} by zero", но това не би трябвало да бъде проблем, защото ми е направило впечатление, че Judge "изрязва" интервалите в края на стринговете. И на мен ще ми е любопитно да разбера откъде идва тази грешка.