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

Търговски комисионни

 

Къде греша ?

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

namespace TradeComissions
{
    class Program
    {
        static void Main(string[] args)
        {
            var town = Console.ReadLine().ToLower();
            var sales = double.Parse(Console.ReadLine());
            var commissions = -1.0;

            if (town == "sofia")
            {
                if (0 <= sales && sales <= 500) commissions = 0.05;
                else if (500 <= sales && sales <= 1000) commissions = 0.07;
                else if (1000 <= sales && sales <= 10000) commissions = 0.08;
                else if (sales >= 10000) commissions = 0.12;
            }
            else if (town == "varna")
            {
                if (0 <= sales && sales <= 500) commissions = 0.045;
                else if (500 <= sales && sales <= 1000) commissions = 0.075;
                else if (1000 <= sales && sales <= 10000) commissions = 0.10;
                else if (sales >= 10000) commissions = 0.13;
            }
            else if (town == "plovdiv")
            {
                if (0 <= sales && sales <= 500) commissions = 0.055;
                else if (500 <= sales && sales <= 1000) commissions = 0.08;
                else if (1000 <= sales && sales <= 10000) commissions = 0.12;
                else if (sales >= 10000) commissions = 0.145;
            }
            if (commissions >= -1.0)
            {
                Console.WriteLine("{0:f2}", (commissions * sales));
            }
            else
            {
                Console.WriteLine("Error");
            }
        }
    }
}

Тагове:
0
Programming Basics
koksibg avatar koksibg 892 Точки

Здравей, имаш грешки навсякъде, където правиш втрората проверка, т.е. след:

 if (0 <= sales && sales <= 500) commissions = 0.05;

правиш другата проверка:

else if (500 <= sales && sales <= 1000) commissions = 0.07;

а тази проверка трябва да е така:

else if (500 < sales && sales <= 1000) commissions = 0.07;

т.е. в първата казваш изрично, че продажбите трябва да са по- малки или равни на 500,

то тогава във втората търсиш само тези които са по-големи от 500, а не равни и т.н. за другите.

 

1
07/02/2017 22:33:58
Nikolai23 avatar Nikolai23 1 Точки

Благодаря , но защо като напиша примерно Хасково....150 не ми излиза error , а -150 ?

0
koksibg avatar koksibg 892 Точки

Защото като напишеш град различен от дадените при проверките - ти НЕ влизаш в тях. Т.е. накрая като принтираш казваш:

if (commissions >= -1.0)

{
   Console.WriteLine("{0:f2}", (commissions * sales));
},

което ще рече, че по условие ти задаваш  var commissions = -1.0; 

и при входен град Хасково или без значение кой друг извън изброените при проверката, тази комисионна няма да се промени, а ще си остане същата, тъй-като в този случай при if условията - аргумента вътре ще е лъжа - if(ако) (условие = истина) тогава изпълни кода във къдравите скоби else(в противен случай) изпълни кода след else, но ако след else има друг if, то тогава се проверява и неговото условие и така. И в този случай (и във всеки един различен от тези в проверките) градове - тези проверки няма да се изпълнят и тогава му казваш да отпечати commissions * sales, където за sales = 150 и Хасково ще получиш резултат -150.

По-добре направи  if (commissions >= -1.0) да е по-голямо от нула:

 if (commissions >0) - за да ти даде Еrror

 

1
Nikolai23 avatar Nikolai23 1 Точки

Благодаря !!! 

 

0
slls1 avatar slls1 43 Точки

Вместо последния if и else пробвай това

 else if (prod<0 || gr!="sofia" || gr!="varna" || gr!="plovdiv")
                {
                    Console.WriteLine("error");
                }

1
Nikolai23 avatar Nikolai23 1 Точки

Ето моето готово решение : http://pastebin.com/JZbZSrgC

1
koksibg avatar koksibg 892 Точки

И аз точно така съм го направил

0
GapoBG avatar GapoBG 15 Точки

Бъркаш с равенствата:

                if (0 <= sales && sales <= 500) commissions = 0.05;
                else if (500 <= sales && sales <= 1000) commissions = 0.07;
                else if (1000 <= sales && sales <= 10000) commissions = 0.08;
                else if (sales >= 10000) commissions = 0.12;

 

0
07/02/2017 22:40:17
athristov avatar athristov 32 Точки

Здрасти колеги, не разбирам къде бъркам, когато си правя сам проверката всичко е ОК изхода е както в примера, но като кача решението в judge и ми гърми на 17/100 понеже няма очакван изход? Мерси.

 

http://pastebin.com/gLN2sb9Q

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