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

Задача 2 Тръби в басейн

Здравей те тази задача ми дава 60/100 каво ли не пробвах и не дава повече а лошото е че не ми казва каква ми е грешката.

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

namespace Задача_2_Тръби_в_басейн
{
    class Program
    {
        static void Main(string[] args)
        {
            int V = int.Parse(Console.ReadLine());
            int P1 = int.Parse(Console.ReadLine());
            int P2 = int.Parse(Console.ReadLine());
            var H = double.Parse(Console.ReadLine());
            var P1total = Math.Truncate(H * P1);
            var P2total = Math.Truncate(P2 * H);
            var Total = Math.Truncate(P1total + P2total);
            var P1procent = Math.Truncate(P1total / (Total / 100));
            var P2procent = Math.Truncate(P2total / (Total / 100));
            var Vprocent = Math.Truncate((P1total / (V / 100)) + (P2total / (V / 100)));
            if (V >= Total)
            {
                Console.WriteLine("The pool is {0:F0}% full. Pipe 1: {1:F0}%. Pipe 2: {2:F0}%.", Vprocent, P1procent, P2procent);                             
            }
            else
            {
                Console.WriteLine("For {0} hours the pool overflows with {1:F0} liters.", H, (Total - V)); 
            }
        }
    }
}
 

Тагове:
-1
Programming Basics
ZornitsaSerbezova avatar ZornitsaSerbezova 455 Точки

Аз я реших с четене на double, вместо int, но не помня защо така съм направила. Дава ми 100/100. Т.е. всички входни данни ги чета в double.

0
16/07/2016 12:49:57
Todor_ns avatar Todor_ns 0 Точки

ЯВНО не ползвам правилно  Math.Truncate промених го като авторското решение и стана но ако някой ми кажа защо не стана по моя начин :)

0
ZornitsaSerbezova avatar ZornitsaSerbezova 455 Точки

Вероятно защото много често го ползваш и затова получаваш грешен резултат накрая в някои случаи.

Math.Truncate е необходимо да се ползва само веднъж - за крайния резултат.

0
Plamen27 avatar Plamen27 599 Точки

Числата ти са добре така ще минат.

Проблема е - формулата за пресмятане на проценти ти е грешна:

(P1total / (Total / 100);   ->  трябва да е (P1total / (Total * 100)  - така и за останалите.

Другия проблем е да коригираш тези редове:

            var P1total = H * P1;            //// тук с Truncate явно ще орежеш нужната все още дробна част
            var P2total = P2 * H;
            var Total = P1total + P2total;
 
            var Vprocent = Math.Truncate( Total / (V / 100);  - по твоя начин при определени сметки също ще даде грешка тъй като събираш 2 закръглени стоиности, а закръглянето трябва да е накрая.

0
27/07/2016 00:29:36
Todor_ns avatar Todor_ns 0 Точки

Ок мерси

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