Loading...
M0nk3yM1nd avatar M0nk3yM1nd 3 Точки

09. Fish Tank

Здравейте, колеги! Запънах се на последната задача 09. Fish Tank от курса Programming Basics with C#. Не разбирам защо след като стартирам програмата ми дава числов резултат много близък до очаквания, но въпреки това грешен. Кодът ми изглежда наред и не намирам своята грешка. Ще се радвам на каквато и да е помощ. Ето го условието, а по-долу ще намерите и моя код:

 

За рождения си ден Любомир получил аквариум с формата на паралелепипед. Първоначално прочитаме от конзолата на отделни редове размерите му – дължина, широчина и височина в сантиметри. Трябва да се пресметне колко литра вода ще събира аквариума, ако се знае, че определен процент от вместимостта му е заета от пясък, растения, нагревател и помпа.

Един литър вода се равнява на един кубичен дециметър/ 1л=1 дм3/.

Да се напише програма, която изчислява литрите вода, която са необходими за напълването на аквариума.

Вход

От конзолата се четат 4 реда:

  1. Дължина в см – цяло число в интервала [10 … 500]
  2. Широчина в см – цяло число в интервала [10 … 300]
  3. Височина в см – цяло число в интервала [10… 200]
  4. Процент  – реално число в интервала [0.000 … 100.000]

Изход

Да се отпечата на конзолата едно число:

  • литрите вода, които ще  събира аквариума.

Примерен вход и изход

Вход

Изход

Обяснения

85

75

47

17

248.68875

обем на аквариумa: 85 * 75 * 47 = 299625 см3

обем в литри: 299625 * 0.001 или  299625 / 1000 => 299.625 литра

заето пространство: 17% = 0.17

нужни литри: 299.625 * (1 - 0.17) = 248.68875 литра

Вход

Изход

Обяснения

105

77

89

18.5

586.445475

обем на аквариумa: 105 * 77 * 89 = 719565 см3

обем в литри: 719565 * 0.001  или 719565 / 1000 => 719.565 литра

заето пространство: 18.5% = 0.185

нужни литри: 719.565 * (1 - 0.185) = 586.445475 литра

 

 

using System;

namespace Fish_Tank
{
    class Program
    {
        static void Main(string[] args)
        {
            int length = int.Parse(Console.ReadLine());
            int width = int.Parse(Console.ReadLine());
            int height = int.Parse(Console.ReadLine());
            double percentage = double.Parse(Console.ReadLine());

            int capacity = length * width * height;
            double liters = capacity / 1000;
            double occupied = percentage / 100;

            double litersNeeded = liters * (1 - occupied);

            Console.WriteLine(litersNeeded);

 


        }
    }
}

0
Programming Basics
svephoto avatar svephoto 1191 Точки
Best Answer

Здравей, M0nk3yM1nd,

 

Направи променливата capacity да бъде от тип double вместо int, защото след това като делиш цяло число на цяло число не можеш да получиш желания резултат като дробно число тук: double liters = capacity / 1000; и получаваш пак цяло число без нужния остатък след десетичната запетая.

1
M0nk3yM1nd avatar M0nk3yM1nd 3 Точки

Проработи! Много благодаря! :) 

2
svephoto avatar svephoto 1191 Точки

Моля! yes laugh

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