Loading...
HristoDinev avatar HristoDinev 26 Точки

04. Beverage Labels -Проблем със задача

Здравейте колеги,

Пускам решението на задачата си в judge, като преди това съм тествал всеки ход и изход. Изходите са ми точно такива, каквито се искат в решението, но системата ми дава само 10/100. Къде е проблема? Ето и решението ми:

using System;


namespace SoftUniHomework01Task4
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            var ProductName = Console.ReadLine();
            var ProductVolume = int.Parse(Console.ReadLine());
            var ProductEnergy = int.Parse(Console.ReadLine());
            var ProductSugarContent = double.Parse(Console.ReadLine());

            var energy = (ProductVolume*ProductEnergy)/100;

            var sugar =(ProductSugarContent * ProductVolume)/100;
            
            Console.WriteLine($"{ProductVolume}ml {ProductName}:"); 
            Console.WriteLine($"{energy}kcal, {sugar}g sugars");
        }
    }
}

Тагове:
0
Fundamentals Module
Vincent avatar Vincent 11 Точки

Здравейте, ако може да ми съдействате с тази задача. Имам проблем с джъдж. Веднъж ми иска резултата в double веднъж в int. къде е проблема. 

https://i.imgur.com/2RA7w9K.png

0
HristoDinev avatar HristoDinev 26 Точки

Промени следните редове:

            var energy = (ProductVolume*ProductEnergy)/100.00;

            var sugar =(ProductSugarContent * ProductVolume)/100.00;

 

Пиши дали разрешава проблема.

0
Vincent avatar Vincent 11 Точки

Благодаря ти за отговора. Проблема е по различен - веднъж се иска без знаци с десетичната запетая, а веднъж се иска с един знак.

Това успях да го преодолея като сложих един If и филтрирах по четни стойности. Джъдж обаче още не ми го приема. Моля за помощ

import java.util.Scanner;

public class Problem01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String name = scanner.nextLine();
        double ProductVolume = Double.parseDouble(scanner.nextLine());
        double ProductEnergy = Double.parseDouble(scanner.nextLine());
        double ProductSugarContent = Double.parseDouble(scanner.nextLine());

        double energy =(ProductVolume*ProductEnergy)/100.00;
        double sugar =(ProductSugarContent * ProductVolume)/100.00;

        System.out.printf("%.0fml %s:%n", ProductVolume, name);

        if (sugar%2==0) {
            System.out.printf("%.0fkcal, %.0fg sugars", energy, sugar);
        }
        else {
            System.out.printf("%.0fkcal, %.1fg sugars", energy, sugar);
        }
    }
}
0
HristoDinev avatar HristoDinev 26 Точки

Грешката ти е във форматирането на стойностите в printf. Пробвай така:

import java.util.Scanner;

public class BeverageLabels {

    public static void main(String[] args) {

        Scanner console = new Scanner(System.in);

        String name= console.nextLine();

        double ProductVolume = Double.parseDouble(console.nextLine());

        double ProductEnergy = Double.parseDouble(console.nextLine());

        int ProductSugarContent = Integer.parseInt(console.nextLine());

        double energy =(ProductVolume*ProductEnergy)/100.00;
        double sugar =(ProductSugarContent * ProductVolume)/100.00;


        System.out.printf("%.0fml %s:%n", ProductVolume, name);

        System.out.printf("%.0fkcal, %.1f sugars", energy, sugar);

    }

}
0
Vincent avatar Vincent 11 Точки

Не се получава. Ето скрин на твоя код от джъдж.

https://i.imgur.com/cKRrX2D.png

Когато сложих g за грамовете пак не става и гърми, че вместо 154 се изписва 154,0

Това както казах според мен трябва да се заобиколи с един for цикъл в които да разделят четните на нечетните и да се нагласи нечетните да се закръглят до един знак след запатеята. Но дори и така пак гърми.

0
25/09/2017 14:55:42
Maria1609 avatar Maria1609 1 Точки
И при мен го имаше този проблем. С DecimalFormat се оправя. Ето така:

import java.text.DecimalFormat;
import java.util.Scanner;

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

        Scanner scanner = new Scanner(System.in);
        DecimalFormat df = new DecimalFormat("#.###############");

        String productName = scanner.nextLine();
        int volume = Integer.parseInt(scanner.nextLine());
        int energyContent = Integer.parseInt(scanner.nextLine());
        double sugarContent = Double.parseDouble(scanner.nextLine());

        double energyContentInGivenVolume = (volume * energyContent) / 100.0;
        double sugarContentInGivenVolume = (volume * sugarContent) / 100.0;

        System.out.printf("%dml %s:\n%skcal, %sg sugars",
                volume, productName, df.format(energyContentInGivenVolume),
                df.format(sugarContentInGivenVolume));
    }
}
0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.