Loading...
AlenPaunov avatar AlenPaunov 32 Точки
Best Answer

Привет, грешката ти идва от последния for loop. Четейки кода ти, би трябвало да прекъсва loop-a всеки път на първата проверка, тоест имаш два break; Проверяваш първото число и във всеки случай пишеш на конзолата и излизаш от цикъла.

аз бих използвал Contains:

if (nums.Contains(numThatMustBeInList) == true)
{
        Console.WriteLine("YES!");
 }
else

{
        Console.WriteLine("NO!");
}        

Поздрави!

ПП: 

numsYouHaveToDeleate => numsYouHaveToDelete = > numsToDelete => elementsToDelete/elementsCountToDelete

 

0
02/10/2017 22:11:08
Teodor92 avatar Teodor92 569 Точки

Проблема идва от търсенето на числото в масива:

            for (int i = 0; i < nums.Count; i++)
            {
                if (nums[i] == numThatMustBeInList)
                {
                    Console.WriteLine("YES!");
                    break;
                }
                else
                {
                    Console.WriteLine("NO!");
                    break;
                }
            }

Още при първата итерация, цикъла ще приключи т.к. и в if и в else блок има break; T.e. тази логика винаги ще изписва NO! на екрана освен когато първия елемент не е равен на този, който търсим.

Можеш да избегнеш подобен проблем чрез деклариране на булева променлива извън цикъла(flag), която да сетваш на true ако числото е срещнато. След приключването на цикъла можеш да изпизваш NO или YES в зависимост от стойността на тази променлива. Примерно:

            var numberIsPresent = false;

            for (int i = 0; i < nums.Count; i++)
            {
                if (nums[i] == numThatMustBeInList)
                {
                    numberIsPresent = true;
                    break;
                }
            }

            Console.WriteLine(numberIsPresent ? "YES!" : "NO!");

П.С. Подобна задаче се решава доста по-лесно с LINQ но нямам идея дали сте го учили. Примерно:

            var nums = Console.ReadLine().Split().Select(int.Parse).ToList();
            var commands = Console.ReadLine().Split().Select(int.Parse).ToList();
            var numsYouHaveToTake = commands[0];
            var numsYouHaveToDelete = commands[1];
            var numThatMustBeInList = commands[2];

            var hasNumber = nums
                .Take(numsYouHaveToTake)
                .Skip(numsYouHaveToDelete)
                .Any(x => x == numThatMustBeInList);

            Console.WriteLine(hasNumber ? "YES!" : "NO!");

 

0
02/10/2017 22:07:44
HristoDinev avatar HristoDinev 26 Точки

И така написана задачата ти гърми.

0
Teodor92 avatar Teodor92 569 Точки

Кое гърми? Току що тествах и пак минава с 100/100?

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