Софтуерно Инженерство
Loading...
sepval avatar sepval 2 Точки

Report System C#

Условието на задачата е следното:

Система за отчет
На благотворително събитие плащанията за закупените продукти винаги се редуват: плащане в брой и плащане с карта. Установени са следните правила за заплащане:
Ако продуктът надвишава 100лв., за него не може да се плати в брой
Ако продуктът е на цена под 10лв., за него не може да се плати с кредитна карта
Програмата приключва или след като получим команда "End" или след като средствата бъдат събрани.
Вход
От конзолата се четат:
Сумата, която се очаква да бъде събрана от продажбите - цяло число в интервала [1 ... 10000]
На всеки следващ ред, до получаване на командата "End" или докато не се съберат нужните средства: цените на предметите, които ще бъдат закупени - цяло число в интервала [1 ... 500]
Изход
     На конзолата да се отпечата:
        При успешна транзакция: "Product sold!"
        При неуспешна транзакция: "Error in transaction!"
Ако сумата на всички закупени продукти надвиши или достигне очакваната сума, програмата трябва да приключи и на конзолата да се изпишат два реда:
        "Average CS: {средно плащане в кеш на човек}"
        "Average CC: {средно плащане с карта на човек}"
 Плащанията трябва да бъдат форматирани до втората цифра след десетичния знак.
При получаване на команда "End", да се изпише един ред:
        "Failed to collect required money for charity."

 

Това  е моето решение:  https://pastebin.com/SgdcdWg8

Получавам 60/100.Не мога да си обясня къде греша?! Предварително благодаря на всички отзовали се!

 

 

 

Тагове:
1
Programming Basics 13/06/2019 22:57:58
s.boyadjiev avatar s.boyadjiev 6 Точки

Здравейте!
На мен в judge упорито ми дава 80/100, поради 2 runtime грешки. Моля за информация къде ми е грешката.
Благодаря!!!

using System;

namespace ReportSystem
{
    class Program
    {
        static void Main(string[] args)
        {
            int sumNeeded = int.Parse(Console.ReadLine());
            
            double totalCurrentSum = 0;
            double currentSumByCard = 0;
            double currentSumCash = 0;
            int numOfPayment = 1;
            int numOfPaymentCash = 0;
            int numOfPaymentCard = 0;

            string payment = Console.ReadLine();

            while (payment != "End")
            {
                

                if (sumNeeded >= totalCurrentSum)
                {
                    int product = int.Parse(payment);

                    if ((numOfPayment % 2) != 0)
                    {
                        if (product > 100)
                        {
                            Console.WriteLine("Error in transaction!");
                        }
                        else
                        {
                            Console.WriteLine("Product sold!");
                            currentSumCash += product;
                            numOfPaymentCash++;
                        }
                        

                    }
                    else if((numOfPayment % 2) == 0)
                    {
                        if (product < 10)
                        {
                            Console.WriteLine("Error in transaction!");                            
                        }
                        else
                        {
                            Console.WriteLine("Product sold!");
                            currentSumByCard += product;
                            numOfPaymentCard++;
                        }


                    }
                    numOfPayment++;
                    totalCurrentSum = currentSumByCard + currentSumCash;

                    payment = Console.ReadLine();
                }
                if (sumNeeded < totalCurrentSum)
                {
                    Console.WriteLine($"Average CS: {currentSumCash / numOfPaymentCash:f2}");
                    Console.WriteLine($"Average CC: {currentSumByCard / numOfPaymentCard:f2}");
                    break;
                }
            }
            if (payment == "End")
            {
                Console.WriteLine("Failed to collect required money for charity.");                
            }
        }
    }
}
 

0
s.boyadjiev avatar s.boyadjiev 6 Точки

Много благодаря!

1