Loading...
EmoBG avatar EmoBG 2 Точки

Здравейте, искам да попитам относно задачата Конзолен междувалутен конвертор от Programming Basics with C# - ноември 2018

Дава ми 80 точки в Judge, а когато тествам примерите всички ми се получават вярно.

Ето и кода:

 

 

 

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

namespace Прости_операции_и_пресмятания___ноември_2018
{
    class Program
    {
        static void Main(string[] args)
        {
            double result = 0;
            var money = double.Parse(Console.ReadLine());
            var inputCurrency = Console.ReadLine();
            var outputCurrency =(Console.ReadLine());

            if (inputCurrency == "BGN")
            {
                if (outputCurrency == "EUR")
                {
                    result = money / 1.95583;
                }
                else if (outputCurrency == "USD")
                {
                    result = money / 1.79549;
                }
                else if (outputCurrency == "GBP")
                {
                    result = money / 2.53405;
                }
            }

            else if (inputCurrency == "USD")
            {
                if (outputCurrency == "EUR")
                {
                    result = (money * 1.79549) / 1.95583;
                }
                else if (outputCurrency == "BGN")
                {
                    result = money * 1.79549;
                }
                else if (outputCurrency == "GBP")
                {
                    result = (money * 1.79549) / 2.53405;
                }
            }

            else if (inputCurrency == "EUR")
            {
                if (outputCurrency == "USD")
                {
                    result = (money * 1.95583) / 1.79549;
                }
                else if (outputCurrency == "BGN")
                {
                    result = money * 1.95583;
                }
                else if (outputCurrency == "GBP")
                {
                    result = (money * 1.95583) / 2.53405;
                }
            }

            else if (inputCurrency == "GBR")
            {
                if (outputCurrency == "USD")
                {
                    result = (money * 2.53405) / 1.79549;
                }
                else if (outputCurrency == "BGN")
                {
                    result = money * 2.53405;
                }
                else if (outputCurrency == "EUR")
                {
                    result = (money * 2.53405) / 1.95583;
                }
            }

            Console.Write($"{result:F2} ");
            Console.WriteLine(outputCurrency);
        }
    }
}
 

0
Programming Basics with C#
RouziM.Kirkorian avatar RouziM.Kirkorian 11 Точки
Best Answer

Здравей, от това, което виждам, грешката в програмата ти е, че след всяко "if" на outputCurrency си написал "else if", а трябва да си продължиш с "if"-a до следващото inputCurrency, където пишеш "else". Вероятно не съм обяснила особено разбираемо, за което се извинявам. Направо погледни коректното решение, според Judge:

 

using System;
                    
public class Program
{
    public static void Main()
    {
        double amount = double.Parse(Console.ReadLine());
        string inputCurrency = Console.ReadLine();
        string outputCurrency = Console.ReadLine();
        double result = 0;
        
        if (inputCurrency == "BGN")
        {
            if (outputCurrency == "USD")
            {
                result = amount / 1.79549;
            }
            if (outputCurrency == "EUR")
            {
                result = amount / 1.95583;
            }
            if (outputCurrency == "GBP")
            {
                result = amount / 2.53405;
            }
        }
            
        else if (inputCurrency == "USD")
        {
            if (outputCurrency == "BGN")
            {
                result = amount * 1.79549;
            }
            if (outputCurrency == "EUR")
            {
                result = amount * 1.79549 / 1.95583;
            }
            if (outputCurrency == "GBP")
            {
                result = amount * 1.79549 / 2.53405;
            }
        }
            
        else if (inputCurrency == "EUR")
        {
            if (outputCurrency == "BGN")
            {
                result = amount * 1.95583;
            }
            if (outputCurrency == "USD")
            {
                result = amount * 1.95583 / 1.79549;
            }
            if (outputCurrency == "EUR")
            {
                result = amount * 1.95583 / 1.95583;
            }
            if (outputCurrency == "GBP")
            {
                result = amount * 1.95583 / 2.53405;
            }
        }
            
            else if (inputCurrency == "EUR")
            {
                if (outputCurrency == "BGN")
                {
                    result = amount * 1.95583;
                }
                if (outputCurrency == "USD")
                {
                    result = amount * 1.95583 / 1.79549;
                }
                if (outputCurrency == "GBP")
                {
                    result = amount * 1.95583 / 2.53405;
                }
            }
                
                else if (inputCurrency == "GBP")
                {
                    if (outputCurrency == "BGN")
                    {
                        result = amount * 2.53405;
                    }
                    if (outputCurrency == "USD")
                    {
                        result = amount * 2.53405 / 1.79549;
                    }
                    if (outputCurrency == "EUR")
                    {
                        result = amount * 2.53405 / 1.95583;
                    }
                }
                    
                    Console.WriteLine("{0:F2} {1}", result, outputCurrency);
    }
}

 

 

-1
EmoBG avatar EmoBG 2 Точки

Мерси!

0
ssd0926 avatar ssd0926 13 Точки

Нямаш случай, в който входната и изходната валута е еднаква. Така написан кода изкарва, че 10лв в лв = 0 лв.

0
marina.kolova avatar marina.kolova 34 Точки

Ето резултат 100/100:

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

namespace _03_CurrencyConverter
{
    class Program
    {
        static void Main(string[] args)
        {
            double money = double.Parse(Console.ReadLine());
            string inputCurrency = Console.ReadLine();
            string outputCurrency = Console.ReadLine();

            double result = 0;

            if (inputCurrency == "BGN")
            {
                if (outputCurrency == "USD")
                {
                    result = money / 1.79549;
                }

                else if (outputCurrency == "EUR")
                {
                    result = money / 1.95583;
                }

                else if (outputCurrency == "GBP")
                {
                    result = money / 2.53405;
                }
            }

            else if (inputCurrency == "USD")
            {
                if (outputCurrency == "BGN")
                {
                    result = money * 1.79549;
                }

                else if (outputCurrency == "EUR")
                {
                    result = money * 1.79549 / 1.95583;
                }

                else if (outputCurrency == "GBP")
                {
                    result = money * 1.79549 / 2.53405;
                }
            }

            else if (inputCurrency == "EUR")
            {
                if (outputCurrency == "BGN")
                {
                    result = money * 1.95583;
                }

                else if (outputCurrency == "USD")
                {
                    result = money * 1.95583 / 1.79549;
                }

                else if (outputCurrency == "GBP")
                {
                    result = money * 1.95583 / 2.53405;
                }
            }

            else if (inputCurrency == "GBP")
            {
                if (outputCurrency == "BGN")
                {
                    result = money * 2.53405;
                }

                else if (outputCurrency == "USD")
                {
                    result = money * 2.53405 / 1.79549;
                }

                else if (outputCurrency == "EUR")
                {
                    result = money * 2.53405 / 1.95583;
                }
            }

            Console.WriteLine($"{result:F2} {outputCurrency}");
        }
    }
}

Гледах, гледах... не виждам някаква съществена разлика с твоя код.

0
09/11/2018 23:31:22
Petya_koleva avatar Petya_koleva 104 Точки

Здравей! Трябва да направиш проверка, ако входната и изходната валута са от един тип, то какъв ще бъде техният резултат.

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