Loading...
Martin4378 avatar Martin4378 0 Точки

ПОМОЩ ЗА ДОМАШНО ИЗТИЧАЩО ДНЕС!

Здравейте, на задачата с условие:

9. Лица на фигури
Да се напише програма, в която потребителят въвежда вида и размерите на геометрична фигура и пресмята
лицето й. Фигурите са четири вида: квадрат (square), правоъгълник (rectangle), кръг (circle) и триъгълник
(triangle). На първия ред на входа се чете вида на фигурата (square, rectangle, circle или triangle). Ако
фигурата е квадрат, на следващия ред се чете едно число - дължина на страната му. Ако фигурата е
правоъгълник, на следващите два реда четат две числа - дължините на страните му. Ако фигурата е кръг, на
следващия ред чете едно число - радиусът на кръга. Ако фигурата е триъгълник, на следващите два реда
четат две числа - дължината на страната му и дължината на височината към нея. Резултатът да се закръгли до
3 цифри след десетичната точка.

Моето решение е:

import java.util.Scanner;

public class P19_FaceFigures {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String figure = scanner.nextLine();

        switch (figure){
            case "square":

                double squaresize = Double.parseDouble(scanner.nextLine());
                double sqface = squaresize * squaresize;
                System.out.printf("%.3f",sqface);

            case "rectangle":

                double recside1 = Double.parseDouble(scanner.nextLine());
                double recside2 = Double.parseDouble(scanner.nextLine());
                double recface = recside1 * recside2;
                System.out.printf("%.3f",recface);

            case "circle":

                double diameter = Double.parseDouble(scanner.nextLine());
                double circlearea = Math.PI * diameter * diameter;
                System.out.printf("%.3f",circlearea);

            case "triangle":

                double triside = Double.parseDouble(scanner.nextLine());
                double trihight = Double.parseDouble(scanner.nextLine());
                double triarea = (trihight * triside) / 2;
                System.out.printf("%.3f",triarea);

        }
    }
}

Всички примерни входове от задачата в лекцията на условни конструкции ми минават в правилните изходи

Judge системата ми дава следния вид грешка.

Моля ви кажете ми къде греша:

Test #0 (Runtime error)

Show input

Exception in thread "main" java.lang.NumberFormatException: empty String
	at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
	at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
	at java.base/java.lang.Double.parseDouble(Double.java:543)
	at P19_FaceFigures.main(P19_FaceFigures.java:26)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at _$SandboxExecutor.main(_$SandboxExecutor.java:38)



БЛАГОДАРЯ ВИ!!!

Тагове:
0
Module: Java Advanced
p_v_a avatar p_v_a 18 Точки

Според мен липсват командите break след всеки case:

 

import java.util.Scanner;
public class P19_FaceFigures {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String figure = scanner.nextLine();

        switch (figure){
            case "square":

                double squaresize = Double.parseDouble(scanner.nextLine());
                double sqface = squaresize * squaresize;
                System.out.printf("%.3f",sqface);
                break;

            case "rectangle":

                double recside1 = Double.parseDouble(scanner.nextLine());
                double recside2 = Double.parseDouble(scanner.nextLine());
                double recface = recside1 * recside2;
                System.out.printf("%.3f",recface);
                break;

            case "circle":

                double diameter = Double.parseDouble(scanner.nextLine());
                double circlearea = Math.PI * diameter * diameter;
                System.out.printf("%.3f",circlearea);
                break;

            case "triangle":

                double triside = Double.parseDouble(scanner.nextLine());
                double trihight = Double.parseDouble(scanner.nextLine());
                double triarea = (trihight * triside) / 2;
                System.out.printf("%.3f",triarea);
                break;

        }
    }
}
0
Martin4378 avatar Martin4378 0 Точки

БЛАГОДАРЯ

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