Loading...
joto_to avatar joto_to 40 Точки

Грешка в задача 09. Count the Integers от C# Conditional Statements and Loops - Exercises (Programming Fundamentals)

По условие дължината на входните данни е не повече от 7 символа (http://prntscr.com/fcnff3). На 4-ти тест явно са повече защото хвърля Test #4 (Runtime error) ако няма catch (OverflowException) при използване на try-catch. Иначе с int.TryParse() си минава нормално задачата.

spzvtbg avatar spzvtbg 581 Точки

ползвай  просто ексепшън (входа може да е всичко дори нов ред), при мен минава всичко. ако си покажеш кода може да сме по конкретни ето ти моя за сръвнение:

   int counter = 0;

            try
            {
                while (true)
                {
                    int input = int.Parse(Console.ReadLine());

                    counter++;
                }

            }
            catch (Exception)
            {
                Console.WriteLine(counter);
            }

0
joto_to avatar joto_to 40 Точки

с този код не минава 4-ти тест:


            int numCount = 0;
            while (true)
            {
                try
                {
                    int.Parse(Console.ReadLine());
                    numCount++;

                }
                catch (FormatException)
                {
                    break;
                }
            }

            Console.WriteLine(numCount);

а с този минава:

            int numCount = 0;
            while (true)
            {
                try
                {
                    int.Parse(Console.ReadLine());
                    numCount++;

                }
                catch (OverflowException)
                {
                    break;
                }
                catch (FormatException)
                {
                    break;
                }
            }

            Console.WriteLine(numCount);

което означава че има овърфлоу когато се парсва към int, а това няма как да се случи с 7 цифри/знака(което пък е по условие).

0
ratsovphilip avatar ratsovphilip 2 Точки

Незнам дали това има значение, но в твоето решение try-catch е в while цикъла. А когато while-а е в try блока, задачата минава на 100 процента.

 

 

0
AlexTasev avatar AlexTasev 65 Точки

Аз първо увеличавам брояча и след това чета входа: в while цикъл:

counter++;
input = int.Parse(Console.ReadLine());

Ползвал съм try-catch.

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