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

[Exam Problems] Programming Basics C# - Задача {5} - Best Player дава 90/100 точки

Здравейте, днес решавах една от задачите и така и не можах да разбера къде е проблема.Предполагам че е нещо малко от сорта на някое равно или евентуална грешка в тестовете, но все пак някой има ли идея къде бъркам?

Ето кода: https://pastebin.com/68dsMPzC

Условието е:

Задача 5. Най-добър играч

Пепи иска да напишете програма, чрез която да разбере кой е най-добрият играч от световното първенство. Информацията, която получавате ще бъде играч и колко гола е отбелязал. От вас се иска да отпечатате кой е играчът с най-много голове и дали е направил хет-трик. Хет-трик е, когато футболистът е вкарал 3 или повече гола. Ако футболистът е вкарал 10 или повече гола, програмата трябва да спре.

Вход:

От конзолата се четат по два реда до въвеждане на команда "END":

  • Име на играч – текст
  • Брой вкарани голове  – цяло положително число в интервала [1 … 10000]

Изход:

На конзолата да се отпечатат 2 реда :

  • На първия ред:

            "{име на играч} is the best player!"

  • На втория ред :
    •  Ако най-добрият футболист е направил хеттрик:

                   "{име на играч} has scored {брой голове} goals and made a hat-trick !!!"

  • Ако най-добрият футболист не е направил хеттрик:

                   "{име на играч} has scored {брой голове} goals."

 

Примерен вход и изход:

Вход

Изход

Обяснения

Neymar

2

Ronaldo

1

Messi

3

END

Messi is the best player!

He has scored 3 goals and made a hat-trick !!!

Първо се въвежда Neymar с 2 гола като за момента той има най-много голове, след това Ronaldo с 1 гол като той има по-малко голове от Neymar, който е с 2, след това Messi, който има 3 гола. Головете на Messi са повече от тези на Neymar и вече Messi има най-много голове. След като головете са му 3, той е направил и хет-трик.

Вход

Изход

Вход

Изход

Silva

5

Harry Kane

10

Harry Kane is the best player!

He has scored 10 goals and made a hat-trick !!!

Rooney

1

Junior

2

Paolinio

2

END

Junior is the best player!

He has scored 2 goals.

Вход

Изход

Вход

Изход

Petrov

2

Drogba

11

Drogba is the best player!

He has scored 11 goals and made a hat-trick !!!

Zidane

1

Felipe

2

Johnson

4

END

Johnson is the best player!

He has scored 4 goals and made a hat-trick !!!

Тагове:
0
Programming Basics with C# 18/07/2020 19:08:20
RoumenRoussev avatar RoumenRoussev 121 Точки

Инициализирай променливите максимално близко до обсега им на действие.  

Тази проверка ти е грешна: if (currentGoals != goals)

Ето ти тест, който ще ти даде грешен резултат.

Neymar

3

Ronaldo

1

Messi

2

END

 

Това е вариант, който би трябвало да работи.

 

using System;

namespace Temp
{
    class Program
    {
        static void Main(string[] args)
        {
            string bestPlayer = "";
            int bestScore = 0;
            string playerName; // Няма нужда да присвояваш стойност.
            while ((playerName = Console.ReadLine()) != "END")
            {
                int currentGoals = int.Parse(Console.ReadLine());
                if (currentGoals > bestScore)
                {
                    bestPlayer = playerName;
                    bestScore = currentGoals;
                }

                if (bestScore >= 10)
                {
                    break;
                }
            }

            Console.WriteLine($"{bestPlayer} is the best player!");
            if (bestScore >= 3)
            {
                Console.WriteLine($"He has scored {bestScore} goals and made a hat-trick !!!");
            }
            else
            {
                Console.WriteLine($"He has scored {bestScore} goals.");
            }
        }
    }
}

0
bambi avatar bambi 43 Точки

 if (currentGoals != goals)  го сменяш с  if (currentGoals > goals) и би трябвало да работи

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