Loading...
ivan_gy6ev avatar ivan_gy6ev 3 Точки

Решение на задача 4 от Programming Basics Exam - 21 February 2016 - Problem 04 - Passion Days

Някой може ли да погледне моето решение на задачата не разбирам защо в judge  при сработване дава грешка след като с примерите в условието се получава желаният резултат, дори тествах даденото решение и отделните тестове, като и в тези случаи няма разлика в изхода, От няколко часа седя и проверявам и не виждам къде е проблема, ако някой може нека ми посочи?

А това е решението което сглобих!?!

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

namespace Passion_days
{
    class Passion_days
    {
        static void Main(string[] args)
        {
            var money = decimal.Parse(Console.ReadLine());
            string inputString = Console.ReadLine();
            var inputPrice = 0.0m;
            var price = 0.0m;
            var counter = 0;
            var memo = 0.0m;
            if (inputString=="mall.Enter")
            {
                for (int i = 1; i <= 20; i++)
                {
                    inputString = Console.ReadLine();
                    memo = money;
                    foreach (char c in inputString)
                    {
                        if (c >= 'a' && c <= 'z') inputPrice += ((int)c) * 0.3m;
                        else if (c >= 'A' && c <= 'Z') inputPrice += ((int)c) * 0.5m;
                        else if (c == '%') money = money / 2;
                        else if (c == '*') money = money + 10;
                        else inputPrice += (int)c;  
                    }
                    if (inputPrice - money > 0) { inputPrice = 0; money = memo; }
                    else
                    {
                        price += (decimal)inputPrice; inputPrice = 0; counter++;
                    }                   
                    if (inputString == "mall.Exit") break;
                }
            }           
            if (counter == 0) Console.WriteLine("No purchases. Money left: {0:f2}lv.", money);
            else Console.WriteLine("{0} purchases. Money left: {1:f2} lv.", counter, money - price);           
        }
    }
}
 

Тагове:
0
Programming Basics
nelkov avatar nelkov 19 Точки

Здравей, 

Прегледах до колкото можах кодоа ти. Това, което си мисля е че всичко е ок, когато втория ред е "mall.Enter", какво става обаче ако въведеш някакви други символи между количеството пари, което ти е първи ред и "mall.Enter", с което почваш да пазаруваш. Според мене по удачно е да използва не for цикъл а while и да кажеш на програмата докато не въвъедеш mall.Enter, да не почва пазаруване. Просто със for цикъл втория ред задължително трябва да ти е "mall.Enter". Също така не виждам ако надхвърлиш наличните пари как програмата ще сигнализира на това. До колкото виждам изкарва отрицтелно число. 

Надявам се да съм бил от полза.

0
ivan_gy6ev avatar ivan_gy6ev 3 Точки

Благодаря! Ще огледам по - внимателно имаш право за избора на цикъла, а за отрицателните стойности ще потърся това, което явно изпускам!

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