6. Баланс по сметка (JAVA / LOOP) // Помощ!
УСЛОВИЕ
Напишете програма, която пресмята колко общо пари има в сметката, след като направите определен брой
вноски. На първия ред ще получите колко вноски трябва да се направят. На всеки следващ ред ще
получавате сумата, която трябва да внесете в сметката, докато не се достигне броя вноски. При всяка
получена сума на конзолата трябва да се извежда "Increase: " + сумата и тя да се прибавя в сметката.
Ако получите число по-малко от 0 на конзолата трябва да се изведе "Invalid operation!" и програмата
да приключи. Когато програмата приключи трябва да се принтира "Total: " + общата сума в сметката
закръглена до втория знак след десетичната запетая.
Вход 2:
5
120
45.55
-150
По-долу е и решението ми, на което JUDGE дава грешка на втори вход "Your output: 120.0 / Expected output: 120.00" .
Въпросът ми е следния:
– Когато в решението сменя System.out.println("Increase: " + sum); с System.out.printf("Increase: %.2f" , sum); , за да порправя грешката, която ми дава JUDGE в IntelliJ ми дава тази грешка, защо?
Increase: Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Double
at java.base/java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4421)
at java.base/java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2936)
at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:2890)
at java.base/java.util.Formatter.format(Formatter.java:2671)
at java.base/java.io.PrintStream.format(PrintStream.java:1053)
at java.base/java.io.PrintStream.printf(PrintStream.java:949)
at p05.main(p05.java:20)
РЕШЕНИЕ: import java.util.Scanner; public class p05 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int in = Integer.parseInt(scanner.nextLine()); int deposit = 0; double total = 0.0; while (deposit < in) { double sum = Double.parseDouble(scanner.nextLine()); if (sum < 0) { System.out.println("Invalid operation!"); break; } total += sum; System.out.println("Increase: " + sum); deposit++; } System.out.printf("Total: %.2f " , total); } }