Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Djombeto avatar Djombeto 7 Точки

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);
    }
}
Тагове:
0
Programming Basics 07/11/2018 21:36:35
TeodorTsenkov96 avatar TeodorTsenkov96 31 Точки
Best Answer
На мен не ми изкарва тази грешка, изкарва ми грешка за празен стринг. Добавил съм %n в тази част от кода ти, за да добави нов ред и се решава този проблем.


total += sum;
System.out.printf("Increase: %.2f%n" , sum);
deposit++;

Ако все пак не тръгне ето ти работещ код - https://pastebin.com/rMZw0cyU

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.