Loading...
Aivanov66 avatar Aivanov66 1 Точки

Fruit Shop - Programing Basics

Здравейте,

имам проблем с дадената задача. Във VS всичко ми е наред и върви перфектно, но в Judge ми дава 0/100. Немога да разбера къде греша. ПРЕДВАРИТЕЛНО БЛАГОДАРЯ НА ОТЗОВАЛИТЕ СЕ!!!

Условие :

Напишете програма, която чете от конзолата плод (banana / apple / orange / grapefruit / kiwi / pineapple / grapes), количество (десетично число) и ден от седмицата (Monday / Tuesday / Wednesday / Thursday / Friday / Saturday / Sunday) и пресмята цената според цените от таблиците по-горе. Резултатът да се отпечата закръглен с 2 цифри след десетичната точка. При невалиден ден от седмицата или невалидно име на плод да се отпечата “error”.

 

Моето решение :

 

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

namespace FruitShop
{
    class Program
    {
        static void Main(string[] args)
        {
            var fruit = Console.ReadLine().ToLower();
            var quantity = double.Parse(Console.ReadLine());
            var day = Console.ReadLine().ToLower();

            if (day == "monday" || day == "tuesday" || day == "wednesday" || day == "thursday" || day == "friday")
            {
                if (fruit == "banana")
                {
                    var result = (quantity * 2.50);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "apple")
                {
                    var result = (quantity * 1.20);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "orange")
                {
                    var result = (quantity * 0.85);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "grapefruit")
                {
                    var result = (quantity * 1.45);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "kiwi")
                {
                    var result = (quantity * 2.70);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "pineapple")
                {
                    var result = (quantity * 5.50);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "grapes")
                {
                    var result = (quantity * 3.85);
                    Console.WriteLine(Math.Round(result, 2));
                }

            }
            else if (day == "saturday" || day == "sunday")
            {
                if (fruit == "banana")
                {
                    var result = (quantity * 2.70);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "apple")
                {
                    var result = (quantity * 1.25);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "orange")
                {
                    var result = (quantity * 0.90);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "grapefruit")
                {
                    var result = (quantity * 1.60);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "kiwi")
                {
                    var result = (quantity * 3.00);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "pineapple")
                {
                    var result = (quantity * 5.60);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "grapes")
                {
                    var result = (quantity * 4.20);
                    Console.WriteLine(Math.Round(result, 2));
                }
            }
            else if (day != "monday" || day != "tuesday" || day != "wednesday" || day != "thursday" || day != "friday" || day != "saturday" || day != "sunday")
            {
                
                Console.WriteLine("error");
            }
          if (fruit != "banana" || fruit != "apple" || fruit != "orange" || fruit != "grapefruit" || fruit != "kiwi" || fruit != "pineapple" || fruit != "grapes")
            {
                Console.WriteLine("error");
            }
            
        }
    }
}
 

Тагове:
0
Programming Basics 17/10/2016 23:58:25
krasi1105 avatar krasi1105 380 Точки

1. Пропусната ';' на последната проверка с else

2.Първо четеш количеството, а след това- деня. Програмата ти ги дава наобратно и когато иска да прочете денят му даваш число, а количеството- ден от седмицата.

3.Когато денят е валиден, а плодът не е нямаш проверка с else, а трябва да напишеш "error".

http://pastebin.com/XKJ1S8Ar

1
Aivanov66 avatar Aivanov66 1 Точки

Здравей и благодаря за отговора. Усетих се, че последните ми проверки не са добре и ги оправих. Би ли ги погледнал? Редактирал съм решението си по-горе.

0
krasi1105 avatar krasi1105 380 Точки

Все още данните, които се четат от конзолата са разменени - първо се чете плодът , след това денят и количеството.

Със сегашните проверки ако денят и плодът не са валидни ще изпише error два пъти, а трябва само един.

Направих една булева променлива, която проверява дали плодът или денят са невалидни.

http://pastebin.com/Vqkv6TR1

1
Aivanov66 avatar Aivanov66 1 Точки

Мисля, че с последната редакция се получи. Judge прие кода, а и като цяло го написах доста по-умно. 

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

namespace FruitShop
{
    class Program
    {
        static void Main(string[] args)
        {
            var fruit = Console.ReadLine().ToLower();
            
            var day = Console.ReadLine().ToLower();

            var quantity = double.Parse(Console.ReadLine());


            if (day == "monday" || day == "tuesday" || day == "wednesday" || day == "thursday" || day == "friday")
            {
                if (fruit == "banana")
                {
                    var result = (quantity * 2.50);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "apple")
                {
                    var result = (quantity * 1.20);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "orange")
                {
                    var result = (quantity * 0.85);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "grapefruit")
                {
                    var result = (quantity * 1.45);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "kiwi")
                {
                    var result = (quantity * 2.70);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "pineapple")
                {
                    var result = (quantity * 5.50);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "grapes")
                {
                    var result = (quantity * 3.85);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else
                {
                    Console.WriteLine("error");
                }

            }
            else if (day == "saturday" || day == "sunday")
            {
                if (fruit == "banana")
                {
                    var result = (quantity * 2.70);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "apple")
                {
                    var result = (quantity * 1.25);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "orange")
                {
                    var result = (quantity * 0.90);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "grapefruit")
                {
                    var result = (quantity * 1.60);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "kiwi")
                {
                    var result = (quantity * 3.00);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "pineapple")
                {
                    var result = (quantity * 5.60);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else if (fruit == "grapes")
                {
                    var result = (quantity * 4.20);
                    Console.WriteLine(Math.Round(result, 2));
                }
                else
                {
                    Console.WriteLine("error");
                }
            }
            else

            {
                Console.WriteLine("error");
            }
            
        }
    }
}
 

0
koksibg avatar koksibg 892 Точки

Ето и едно решение от мен:

http://pastebin.com/2H7VT30P

И вместо Console.WriteLine(Math.Round(result, 2));

можеш да пробваш така:

Console.WriteLine("{0:f2}", result);

Това ти закръгля отново до 2 знак след десетичната запетая.

 

0
Aivanov66 avatar Aivanov66 1 Точки

Здравей и благодаря за полезната информация! Задължително ще го изпробвам :)

1
borislav9212 avatar borislav9212 745 Точки

Здравей,

Понеже си нов във форума, предполагам не знаеш, че има правила във форума. Когато имаш код повече от 15 реда използвай pastebin.com.

0
Aivanov66 avatar Aivanov66 1 Точки

Благодаря, 

ще взема забележката ти предвид!

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