Loading...
emocool avatar emocool 1 Точки

04. Food for Pets /Java /Programming Basics Online Exam - 28 and 29 March 2020

Здравейте, моля за помощ.

тук е условието на задачата:

https://judge.softuni.bg/Contests/Practice/Index/2275#6

а тук кода : https://pastebin.com/kg7gr34L

Слагам кода и във въпроса. Предварително благодаря.

Тези два реда ми дават стойност 0 като резултат и не мога да разбера защо?

int percentageFoodDog = totalAmountFoodDog / totalAmountEatenFood;

int percentageFoodCat = totalAmountFoodCat / totalAmountEatenFood;

 

 

package Exams.E28_29_2020;

import java.util.Scanner;

public class P04FoodForPets {

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

        //всеки трети ден бисквитки
        //бисквитките са 10 % от общо изядената храна

        int days = Integer.parseInt(scan.nextLine());
        double totalAmountFood = Double.parseDouble(scan.nextLine());

        int totalAmountFoodDog = 0;
        int totalAmountFoodCat = 0;
        int totalAmountEatenFood = 0;

        int thirdDayFoodDog = 0;
        int thirdDayFoodCat = 0;

        for (int i = 1; i <= days; i++) {
            int amountFoodDogPerDay = Integer.parseInt(scan.nextLine());
            int amountFoodCatPerDay = Integer.parseInt(scan.nextLine());

            totalAmountFoodDog += amountFoodDogPerDay;
            totalAmountFoodCat += amountFoodCatPerDay;

            thirdDayFoodDog = amountFoodDogPerDay;
            thirdDayFoodCat = amountFoodCatPerDay;

        }
        int totalAmountthirdDay = thirdDayFoodCat + thirdDayFoodDog;
        totalAmountEatenFood = totalAmountFoodCat + totalAmountFoodDog;

        int test1 = totalAmountFoodDog + 1000;
        int test2 = totalAmountEatenFood + 1000;
        double test3 = totalAmountFood / test2;

        int biscuits = Math.round(totalAmountthirdDay * 10 / 100);

        int percentageFoodDog = totalAmountFoodDog / totalAmountEatenFood;
        int percentageFoodCat = totalAmountFoodCat / totalAmountEatenFood;

        System.out.printf("Total eaten biscuits: %dgr.%n", biscuits);
        System.out.printf("%.2f%% of the food has been eaten.%n", totalAmountEatenFood / totalAmountFood * 100.0);
        System.out.printf("%.2f%% eaten from the dog.%n", percentageFoodDog * 100.0);
        System.out.printf("%.2f%% eaten from the cat.%n", percentageFoodCat * 100.0);


    }
}

 

 

Тагове:
0
Programming Basics
icowwww avatar icowwww 2813 Точки

Здравей,

1. Трябва на всеки 3ти ден да добавяш към променлива от тип double грамажа на бисквитите.

2. Когато смяташ процента делиш две инт стойности, като по този начин получаваш инт резултат. Тоест при 

 int percentageFoodDog = totalAmountFoodDog / totalAmountEatenFood;

Тази променлива винаги ще върне нула, въпреки че резултата от делението е между 0 и 1 и след това дори да умножиш по 100 нулата си остава нула. Най- лесно касташ към double една от стойностите и запазваш в резултата като double:

double percentageFoodDog = (double)totalAmountFoodDog / totalAmountEatenFood;

 

Промених решението с коментари, дали промяната е по първата точка или по втората:

https://pastebin.com/Z1Y7UfgJ

 

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