Софтуерно Инженерство
Loading...
+ Нов въпрос
YanchoKostov avatar YanchoKostov 0 Точки

Защо judge не я приема за вярна? Programming Basics Online Exam - 3 and 4 November 2018-04. Wedding Decoration

Здравейте, реших тази изпитна задачка, но не мога да разбера защо judge не я приема за вярна. Ако знаете моля обяснете ми smiley.

https://judge.softuni.bg/Contests/Practice/Index/1298#7

https://pastebin.com/wUULhKRp

0
Programming Basics with C#
DimitarVlaev avatar DimitarVlaev 92 Точки

Привет колега,

Не ти я приема, защото while-цикълът ти е потенциално безкраен, тъй като никъде не проверяваш бюджетът дали е достатъчен, след всяка следваща покупка. Можеш да направиш това по следния начин, примерно:

while (budget > spendMoney)

Успех!

1
YanchoKostov avatar YanchoKostov 0 Точки

Прав си за тази грешка, но пак judge казва "грешка при изпълнение"-runtime error и звездички. При мен програмката не дава никакви грешки, на какво може да се дължи това?

0
DimitarVlaev avatar DimitarVlaev 92 Точки

С този код https://pastebin.com/DQRZkGx9 при мен минава на 100% в judge. Това е точно копие на твоя код единствено с промяната в скобите на while-а.

0
lostinparadise avatar lostinparadise 19 Точки

С while (budget > spendMoney) минава 100/100

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _04.Wedding_Decoration
{
    class Program
    {
        static void Main(string[] args)
        {
            double budget = double.Parse(Console.ReadLine());
            double spendMoney = 0;
 
            int Bcount = 0;
            int Fcount = 0;
            int Ccount = 0;
            int Rcount = 0;
 
 
            while (budget > spendMoney)
            {  
             string stokTipe = Console.ReadLine();
 
                if (stokTipe=="stop")
                {
                    break;
                }
 
             int count = int.Parse(Console.ReadLine());
               
                switch (stokTipe)
                {
                    case "balloons":
                        spendMoney = spendMoney + (count * 0.1);
                        Bcount += count;
                        break;
 
                    case "flowers":
                        spendMoney = spendMoney + (count * 1.5);
                        Fcount += count;
                        break;
 
                    case "candles":
                        spendMoney = spendMoney + (count * 0.5);
                        Ccount += count;
                        break;
 
                    case "ribbon":
                        spendMoney = spendMoney + (count * 2.0);
                        Rcount += count;
                        break;
                }
 
            }
            if (budget > spendMoney)
            {
                Console.WriteLine($"Spend money: {spendMoney:f2}");
                Console.WriteLine($"Money left: {budget - spendMoney:f2}");
                Console.WriteLine($"Purchased decoration is {Bcount} balloons, {Rcount} m ribbon, {Fcount} flowers and {Ccount} candles.");
            }
            else
            {
                Console.WriteLine("All money is spent!");
                Console.WriteLine($"Purchased decoration is {Bcount} balloons, {Rcount} m ribbon, {Fcount} flowers and {Ccount} candles.");
            }
        }
    }
}

0
YanchoKostov avatar YanchoKostov 0 Точки

Благодаря много, сега се получиyeslaugh. Страно че преди не ставаше със същия код, може проблема да е бил в judge(смея да кажа, въпреки че съм заек тук).

-1