Софтуерно Инженерство
Loading...
+ Нов въпрос
Darkk avatar Darkk 0 Точки

Toy shop задача

Здравейте , кода ми смята точно , но все пак judge-а ми дава грешки и не разбира защо.Моля ако някой да ми посочи грешката .

using System;

namespace ToyShop
{
    class Program
    {
        static void Main(string[] args)
        {
            double excursionPrice = double.Parse(Console.ReadLine());
            int puzzleToy = int.Parse(Console.ReadLine());
            int dolleToy = int.Parse(Console.ReadLine());
            int bearToy = int.Parse(Console.ReadLine());
            int minionToy = int.Parse(Console.ReadLine());
            int truckToy = int.Parse(Console.ReadLine());


            double orderPrice = (puzzleToy * 2.60 + dolleToy * 3 + bearToy * 4.10 + minionToy * 8.20 + truckToy * 2)* 0.90;
            double orderQuantity = puzzleToy + dolleToy + bearToy + minionToy + truckToy;

            if (orderPrice >= excursionPrice)
            {
                if (orderQuantity >= 50)
                {
                    double orderPriceSell = (orderPrice * 0.75) - excursionPrice;
                    Console.WriteLine($"Yes! {orderPriceSell:f2} lv left.");
                }
                else
                {
                    double orderPriceRegular = orderPrice - excursionPrice;
                    Console.WriteLine($"Yes! {orderPriceRegular:f2} lv left.");
                }
            }
            else
            {
                double neededMoney = excursionPrice - orderPrice;
                Console.WriteLine($"Not enough money! {neededMoney:f2} lv needed.");
            }
        }
    }
}
 

Тагове:
0
Programming Basics with C# 18/05/2019 23:40:51
richard9696 avatar richard9696 3 Точки

Привет,

Имаш няколко грешки в задачата.

1. Цената за наема НЕ се изважда веднага след като си сметнал продажбата, а след като си изчислил дали има или няма отстъпка. Тоест това *0.90 трябва да се случи някъде в If проверките.

2. Първо трябва да провериш дали продадените играчки са повече от 50, и след това да сметнеш отстъпката(ако има такава), да извадиш наема и чак след това да провериш дали парите стигат за екскурзия. Това което ти си направил е , че проверяваш първо дали парите стигат за ексурзия и след това смяташ отстъпката, а трябва да направиш обратното.

Ето едно работещо решение:

https://pastebin.com/gVvfs5et 

 

 

0
Darkk avatar Darkk 0 Точки

Благодаря за отговора определено ми помогна , но по първа точка не си прав. Пренаписах си задачата защото държах да е по моя начин и проработи накрая , ето го резултата:

using System;

namespace ToyShop
{
    class Program
    {
        static void Main(string[] args)
        {
            double excursionPrice = double.Parse(Console.ReadLine());
            int puzzleToy = int.Parse(Console.ReadLine());
            int dolleToy = int.Parse(Console.ReadLine());
            int bearToy = int.Parse(Console.ReadLine());
            int minionToy = int.Parse(Console.ReadLine());
            int truckToy = int.Parse(Console.ReadLine());


            double orderPrice = (puzzleToy * 2.60 + dolleToy * 3 + bearToy * 4.10 + minionToy * 8.20 + truckToy * 2)* 0.90;
            double orderQuantity = puzzleToy + dolleToy + bearToy + minionToy + truckToy;

            if(orderQuantity < 50)
            {
                if(orderPrice < excursionPrice)
                {
                    Console.WriteLine($"Not enough money! {excursionPrice - orderPrice:f2} lv needed.");
                }
                else
                {
                    Console.WriteLine($"Yes! {orderPrice - excursionPrice:f2} lv left.");
                }
            }
            else if (orderQuantity >= 50)
            {
                if (orderPrice * 0.75 < excursionPrice)
                {
                    Console.WriteLine($"Not enough money! {excursionPrice - (orderPrice * 0.75):f2} lv needed.");
                }
                else
                {
                    Console.WriteLine($"Yes! {(orderPrice * 0.75) - excursionPrice:f2} lv left.");
                }
            }
            else
            {
                Console.WriteLine();
            }
        }
    }
}
 

 

0