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

Water dispenser

Здравейте!

Ако някой може да ми помогне с тази задача, ще съм много благодарен!

Ето го и условието:

Всеки офис си има диспенсър за вода. Напишете програма, която отчита дали служител от офиса е успял да
напълни чашата си успешно.
Диспенсърът има три бутона :
 Easy - лесен (50 милилитра)
 Medium - среден (100 милилитра)
 Hard - силен (200 милилитра)
Ще получите обемът на чашата и на всеки следващ ред кой бутон е бил натиснат. Ако чашата се напълни
или прелее програмата приключва.
Ако чашата прелее отпечатайте колко вода е била излята. При успешно напълване отпечатайте броят на
натисканията на бутона.

Ето дотук стигнах аз:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Water_dispenser
{
    class Program
    {
        static void Main(string[] args)
        {
            int volumOfGlass = int.Parse(Console.ReadLine());
            int easyVolum = 0;
            int mediumVolum = 0;
            int hardVolum = 0;
            int totalSum = 0;
            int times = 0;
            while (totalSum<=volumOfGlass)
            {
                string input = Console.ReadLine().ToLower() ;
                if (input == "easy")
                    easyVolum = 50;
                if (input == "medium")
                    mediumVolum = 100;
                if (input == "hard")
                    hardVolum = 200;
                totalSum = easyVolum+ mediumVolum+hardVolum;
                times++;
                if (totalSum>volumOfGlass)
                {
                    Console.WriteLine($"{totalSum - volumOfGlass}ml has been spilled.");break;
                }
            }
            if (totalSum == volumOfGlass)
            {
                Console.WriteLine($"The dispenser has been tapped {times} times.");
            }
        }
    }
}
 

Тагове:
0
Programming Basics with C#
icowwww avatar icowwww 2779 Точки

Поправено: https://pastebin.com/d0hM5Uvx

Поправих условието на while цикъла, защото условието за The dispenser has been tapped {times} times. никога няма да бъде изпълнено, след като while цикъла има същото условие и работи докато то е изпълнено. Което значи, че ако цикъла свърши задължително условието if (totalSum == volumOfGlass) няма да бъде изпълнено.

Промених променливите дирекно да добавят към сумата количеството вода. Не ти трябват толкова променливи. А и логиката с тях беше сбъркана.

Изкарах провеката   if (totalSum>volumOfGlass) извън цикъла, защото няма смисъл да проверява на всяко завъртане, след като условието на цикъла проверява същото нещо. Промених break; на return;.

Тъй като return прекъсва програмата. И след като totalSum не е нито по-малко, нито по-голямо от volumOfGlass не ти трябва случая за    (totalSum == volumOfGlass), тъй като е ясно, че са равни, в потивен случай програмата не би стигнала дотук.

0
02/07/2018 16:38:27
vgretchenliev avatar vgretchenliev 0 Точки

Мерси много за помощта!

0
vgretchenliev avatar vgretchenliev 0 Точки

Ако знаех, нямаше да питам.

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