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

Повторения с цикли -While-Loop домашна зад 3 Почивка

Уважаеми колеги нямам идея кое не е вярно на примерният Вход/Изход всичко ми е коректно , но ми дава 0 от 100, всякакви съвети са ми полезни , ето го моя код :

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

namespace Vacation
{
    class Program
    {
        static void Main(string[] args)
        {
            double PriceEx = double.Parse(Console.ReadLine());
            double AvMoney= double.Parse(Console.ReadLine());
            string transact = string.Empty;
            double totalSave = 0.0;
            int countSp = 0;
            int countSv = 0;
            totalSave = AvMoney;
            while (true)
            {
                transact = Console.ReadLine();
                double amount = double.Parse(Console.ReadLine());
                switch (transact)
                {
                    case "save":
                        {
                            totalSave = totalSave+amount;
                            countSv++;
                            if (totalSave >= PriceEx)
                            {
                                Console.WriteLine("You saved the money for {0} days.", countSv+countSp);
                                break;
                            }
                            
                            break;
                        }
                    case "spend":
                        {
                            totalSave = AvMoney-amount;
                            if (totalSave <= 0)
                                totalSave = 0;
                            countSp++;
                            if (countSp > 4)
                            {
                                Console.WriteLine("You can't save the money.");
                                Console.WriteLine(countSp);
                                break;
                            }
                            break;
                        }
                }

            }

        }
    }
}
 

Тагове:
0
Module: C# Advanced
chrisi2712 avatar chrisi2712 272 Точки
Best Answer

Използвата switch-case в цикъла,затова дава 0 точки,при първия break,  целият цикъл се прекъвса. Пробвайте да решите задачата с if конструкция

0
Ang7411 avatar Ang7411 3 Точки

има прогрес 77/100

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

namespace Vacation
{
    class Program
    {
        static void Main(string[] args)
        {
            double PriceEx = double.Parse(Console.ReadLine());
            double AvMoney= double.Parse(Console.ReadLine());
            string transact = string.Empty;
            double totalSave = 0.0;
            int countSp = 0;
            int countSv = 0;
            totalSave = AvMoney;
            while (true)
            {
                transact = Console.ReadLine();
                double amount = double.Parse(Console.ReadLine());
               
                
                    if(transact == "save")                
                        {
                            totalSave = totalSave+amount;
                            countSv++;
                            if (totalSave >= PriceEx)
                            {
                                Console.WriteLine("You saved the money for {0} days.", countSv+countSp);
                                break;
                            }
                            
                           
                        }
                    else if(transact== "spend")
                        {
                            totalSave = AvMoney-amount;
                            if (totalSave <= 0)
                                totalSave = 0;
                            countSp++;
                            if (countSp > 4)
                            {
                                Console.WriteLine("You can't save the money.");
                                Console.WriteLine(countSp);
                                break;
                            }
                            
                        }
                

            }

        }
    }
}
 

0
07/02/2019 19:03:41
chrisi2712 avatar chrisi2712 272 Точки

Това е моето решение може да го разгледате

using System;

namespace Vacation
{
    class Program
    {
        static void Main(string[] args)
        {
            double priceVacantin = double.Parse(Console.ReadLine());
            double ownedMoney = double.Parse(Console.ReadLine());
            int counterSpendDays = 0;
            int counterDays = 0;
            bool isThereEnoughMoney = true;

            while(ownedMoney<priceVacantin)
            {
                string action = Console.ReadLine();
                double moneyCash = double.Parse(Console.ReadLine());
                counterDays++;

                if (action=="spend")
                {
                    ownedMoney -= moneyCash;
                    counterSpendDays++;

                    if(moneyCash>ownedMoney)
                    {
                        ownedMoney = 0;
                    }
                    if (counterSpendDays==5)
                    {
                        Console.WriteLine("You can't save the money.");
                        Console.WriteLine($"{counterDays}");
                        isThereEnoughMoney = false;
                        break;
                    }
                }
                else if (action=="save")
                {
                    ownedMoney += moneyCash;
                    counterSpendDays = 0;
                }
            }

            if (isThereEnoughMoney==true)
            {
                Console.WriteLine($"You saved the money for {counterDays} days.");
            }
        }
    }
}
 

0
Ang7411 avatar Ang7411 3 Точки

не ти се мисли върху моето .....Благодаря 

0
chrisi2712 avatar chrisi2712 272 Точки

Това тук е твоето решение,малко го промених, за да ми е по-ясно,станаха 88/100 точки, в момента обаче нямам повече време. По-късно пак ще го погледна.

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            
                double PriceEx = double.Parse(Console.ReadLine());
                double AvMoney = double.Parse(Console.ReadLine());
                string transact = string.Empty;
                double totalSave = 0.0;
                int countSp = 0;
                int countSv = 0;
                totalSave = AvMoney;
            int counterDays = 0;

                while (true)
                {
                    transact = Console.ReadLine();
                    double amount = double.Parse(Console.ReadLine());
                 counterDays++;

                    if (transact == "save")
                    {
                        totalSave = totalSave + amount;
                        countSp = 0;

                        if (totalSave >= PriceEx)
                        {
                            Console.WriteLine("You saved the money for {0} days.", counterDays);
                            break;
                        }


                    }
                    else if (transact == "spend")

                    {
                    countSp++;
                    totalSave = AvMoney - amount;

                    if (totalSave < 0)
                    {
                        totalSave = 0;
                    }
                            
                        
                    if (countSp == 5)
                        {
                            Console.WriteLine("You can't save the money.");
                            Console.WriteLine(counterDays);
                            break;
                        }

                    }


                }

            }
        }
    }

    
 

0
chrisi2712 avatar chrisi2712 272 Точки

Вашето решение 100 от 100. Грешката беше тук totalSave = AvMoney - amount;; (в случея със spend), а навсякъде по-горе в кода използвате само totalsave. Поправих го на totalSave = totalSave - amount;

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            
                double PriceEx = double.Parse(Console.ReadLine());
                double AvMoney = double.Parse(Console.ReadLine());
                string transact = string.Empty;
                double totalSave = 0.0;
                int countSp = 0;
                int countSv = 0;
                totalSave = AvMoney;
            int counterDays = 0;

                while (true)
                {
                    transact = Console.ReadLine();
                    double amount = double.Parse(Console.ReadLine());
                 counterDays++;

                    if (transact == "save")
                    {
                        totalSave = totalSave + amount;
                        countSp = 0;

                        if (totalSave >= PriceEx)
                        {
                            Console.WriteLine("You saved the money for {0} days.", counterDays);
                            break;
                        }


                    }
                    else if (transact == "spend")

                    {
                    countSp++;
                    totalSave = totalSave - amount;

                    if (totalSave < 0)
                    {
                        totalSave = 0;
                    }
                            
                        
                    if (countSp == 5)
                        {
                            Console.WriteLine("You can't save the money.");
                            Console.WriteLine(counterDays);
                            break;
                        }

                    }


                }

            }
        }
    }

    
 

0
Ang7411 avatar Ang7411 3 Точки

Сърдечно Благодаря , бях изпушил....всъщност ключът към 100та процената е НУЛИРАНЕТО на брояча за разход в часта "save", за да може да брои 5 П О С Л Е Д О В А Т Е Л Н И Д Н И, а не 5 дни изобщо , може да си харчи и 55 дни , идеята е да не са последователни 5......ама не го видях този момент ПРИЗНАВАМ

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