Професионална програма
Loading...
georgiblazhev avatar georgiblazhev 3 Точки

Cinema Tickets - Exam

Добър вечер,

 

Пиша ви с огромна молба. :D

 

От два дена я мъча тази красивата задача и точно когато я подкарах да върви на нулевите тестове, тя не мина нито едно условие в Judge (0/100).

 

Това е кодът: https://pastebin.com/Ae9UKRPH

 

Моля, асистирайте.

0
Programming Basics
kkaraivanov avatar kkaraivanov 427 Точки
Best Answer

Заповядай :), надявам се ще откриеш грешката в кода си,която ти прави проблем.

using System;

namespace CinemaTickets
{
    class Program
    {
        static void Main(string[] args)
        {
            string command = "";
            int totalStudent = 0;
            int totalStandard = 0;
            int totalKid = 0;
            int totalTiket = 0;
            while (command != "Finish")
            {
                command = Console.ReadLine();
                int student = 0;
                int standard = 0;
                int kid = 0;
                if (command == "Finish")
                {
                    break;
                }
                int freePosition = int.Parse(Console.ReadLine());
                for (int i = 0; i < freePosition; i++)
                {
                    string curentPosition = Console.ReadLine();
                    if (curentPosition == "student")
                    {
                        student++;
                    }
                    else if (curentPosition == "standard")
                    {
                        standard++;
                    }
                    else if (curentPosition == "kid")
                    {
                        kid++;
                    }
                    else if (curentPosition == "End")
                    {
                        break;
                    }
                }
                totalStudent += student;
                totalStandard += standard;
                totalKid += kid;
                Console.WriteLine($"{command} - {((student + standard + kid) / (double)freePosition) * 100:f2}% full.");
            }
            totalTiket = totalStudent + totalStandard + totalKid;
            Console.WriteLine($"Total tickets: {totalTiket}");
            Console.WriteLine($"{(totalStudent / (double)totalTiket) * 100:f2}% student tickets.");
            Console.WriteLine($"{(totalStandard / (double)totalTiket) * 100:f2}% standard tickets.");
            Console.WriteLine($"{(totalKid / (double)totalTiket) * 100:f2}% kids tickets.");
        }
    }
}

 

1
24/10/2019 21:04:10
georgiblazhev avatar georgiblazhev 3 Точки

Здравейте,

Благодаря за отговора Ви!

 

Грешката в опита ми да направя задачата с два while цикъла и ограничението за билетите да е в отделен if ли се състои?

 

Редактирах кода ми спрямо това, което сте ми пратили и стана на 100%.

 

0
kkaraivanov avatar kkaraivanov 427 Точки

Ами дали ще е While или For цикъл в случая няма значение стига да приключи в определения момент от условието. Имаш няколко Double променливи, а върнатата стойност на конзолата е различна от тази на Int. Друг проблем който забелязах в Judg е че символ на кирилица като "- или , или . или кавички", винаги връщат 0/100. Провери какви символи имаш във Console.WriteLine(), може да нямаш грешка в логиката и кода.

0
kkaraivanov avatar kkaraivanov 427 Точки

Ето и още една грешка която открих -

Console.WriteLine($"{(studentTickets / totalTickets * 100):F2}% student tickets.");
Console.WriteLine($"{(standardTickets / totalTickets * 100):F2}% standard tickets.");
Console.WriteLine($"{(kidsTickets / totalTickets * 100):F2}% kids tickets.");

При изчисляване на където ще ти се върне стойност реално число, трябва да парснеш една от променливите за да не ти връща стойност "00" след десетичната запетая. Кода би трябвало да бъде ето така -

Console.WriteLine($"{(studentTickets / (double)totalTickets * 100):F2}% student tickets.");
Console.WriteLine($"{(standardTickets / (double)totalTickets * 100):F2}% standard tickets.");
Console.WriteLine($"{(kidsTickets / (double)totalTickets * 100):F2}% kids tickets.");

 

0
georgiblazhev avatar georgiblazhev 3 Точки

Благодаря.

 

Наистина не знаех това за латиницата и кирилицата.

0
24/10/2019 21:30:48
kkaraivanov avatar kkaraivanov 427 Точки

Понеже нямам фейсбук, ако искаш ме намери в скайп. При трудности може да ти хелпвам с каквото мога. 

kostadin.karraivanov

0
tsevov avatar tsevov 0 Точки

Защо на мен при Scary Movie ми дава - 200.00% full?

https://pastebin.com/1NwAiRRp

0