Loading...
Stefan24 avatar Stefan24 5 Точки

Price Change Alert (Homework)

Неще да работи гнидата каквото и да човъркам.. някои има ли идея как да го фикснеме? ^^

 

 

using System;

class PriceChangeAlert
{
    static void Main(string[] args)
    {
        //Entry variables
        int n = int.Parse(Console.ReadLine());
        double granica = double. Parse(Console.ReadLine());
        double lastPrice = double.Parse(Console.ReadLine());

        //Prices and Price Difference
        for (int i = 0; i < n - 1; i++)
        {
            double currentPrice = double.Parse(Console.ReadLine());
            double div = Proxy(lastPrice, currentPrice);
            bool isSignificantDifference = IsDifferentCheck(div, granica);

            string message = GetPercentageDifference(currentPrice, lastPrice, div, isSignificantDifference);
            Console.WriteLine(message);

            lastPrice = currentPrice;
        }
    }

    //Difference Check
    static bool IsDifferentCheck(double granica, double IsDifferentCheck)
    {
        if (Math.Abs(granica) >= IsDifferentCheck)
        {
            return true;
        }
        return false;
    }

    //Difference Percentage
    static string GetPercentageDifference(double currentPrice, double lastPrice, double difference, bool eitherTrueOrFalse)
    {
        string priceChange = "";

        if (difference == 0)
        {
            priceChange = string.Format("NO CHANGE: {0}", currentPrice);
        }

        else if (!eitherTrueOrFalse)
        {
            priceChange = string.Format("MINOR CHANGE: {0} to {1} ({2:F2}%)", lastPrice, currentPrice, difference);
        }

        else if (eitherTrueOrFalse && (difference > 0))
        {
            priceChange = string.Format("PRICE UP: {0} to {1} ({2:F2}%)", lastPrice, currentPrice, difference);
        }

        else if (eitherTrueOrFalse && (difference < 0))
        {
            priceChange = string.Format("PRICE DOWN: {0} to {1} ({2:F2}%)", lastPrice, currentPrice, difference);
        }

        return priceChange;
    }

    //Dont know what the fuck this is lol
    static double Proxy(double lastPrice, double currentPrice)
    {
         double result = currentPrice - lastPrice;
         return result;
    }
}
 

1
Fundamentals Module
Stefan24:
Получен отговор
puffed avatar puffed 289 Точки
Best Answer

И аз нямам представа защо не ми минава. Дава ми 40/100 точки, независимо дали използвам double или decimal. Ето моя код: http://pastebin.com/zsraxWae.

Намерих си грешката. Math.Abs() съм го сложила на threshold,  a не на разликата diff. Глупаво. Освен това върнах първото условие да бъде, както в първоначалния код, if (Math.Abs(diff) == 0). Поправен код за 100/100: http://pastebin.com/uC2CnqmU

0
29/09/2016 14:34:25
bMedarski avatar bMedarski 148 Точки

Това е решение за 100/100, ако Ви помага

http://pastebin.com/Bt08cqaz

0
29/09/2016 12:17:47
Wencii avatar Wencii 90 Точки

http://pastebin.com/BGrXS5qd - дава 100/100. Имаше грешка в метода ImaliDiff(от решението в задачата)

0
Stefan24 avatar Stefan24 5 Точки

Благодарим, колеги и колежки! : )

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