Loading...
spiderbait90 avatar spiderbait90 63 Точки

Different Integers Size (Help?)

Някой може ли да ми помогне с този проблем ? Не мога да разбера как да прехвърля n в catcha ? Условието на задачата е грешката да излезе и с прекалено голямата цифра която съм въвел.....но не мога да прехвърля n в catcha.....

try
            {
                var n = long.Parse(Console.ReadLine());
                if (n <= long.MaxValue && n >= long.MinValue)
                    Console.WriteLine($"{n} can fit in:");
                if (n <= sbyte.MaxValue && n >= sbyte.MinValue)
                    Console.WriteLine("* sbyte");
                if (n <= byte.MaxValue && n >= byte.MinValue)
                    Console.WriteLine("* byte ");
                if (n <= short.MaxValue && n >= short.MinValue)
                    Console.WriteLine("* short ");
                if (n <= ushort.MaxValue && n >= ushort.MinValue)
                    Console.WriteLine("* ushort ");
                if (n <= int.MaxValue && n >= int.MinValue)
                    Console.WriteLine("* int ");
                if (n <= uint.MaxValue && n >= uint.MinValue)
                    Console.WriteLine("* uint ");
                if (n <= long.MaxValue && n >= long.MinValue)
                    Console.WriteLine("* long");
                
            }            
            catch
            {
                Console.WriteLine($"{n}can't fit in any type");
                
            }                                    

Тагове:
0
Programming Fundamentals
ambiorix avatar ambiorix 640 Точки
Best Answer

Ами ти пак ще имаш само един вход.

Понеже решението е почти еднакво, ето погледни моето: https://github.com/gaydov/Softuni-Programming-Fundamentals/blob/master/2DataTypesAndVariables/DifferentIntegersSize/DifferentIntegersSize.cs

 

Между другото имаш 2 пъти тази проверка if (n <= long.MaxValue && n >= long.MinValue) - махни я в началото.

 

Идеята е:

1. Записваш числото като стринг.

2. В try пробваш да го вкараш в лонг - ако не стане значи е прекалено голямо и отиваш в catch.

3. Ако влиза в long, то значи може да влиза и в по-малък тип и затова ги обикаляш с всичките if-ове.

0
27/03/2017 21:52:32
spiderbait90 avatar spiderbait90 63 Точки

благодаря на всички за помоща !! :)

0
spzvtbg avatar spzvtbg 581 Точки

може би трябва да конвъртнеш числото в стринг и да му сръвняваш и дължината в проверките така както си го написал ти ги превърта сигурно

0
dimitur_botev avatar dimitur_botev 112 Точки

Не можеш, защото n се намира в скоупа на  Try блока. Просто прочети импута преди try блока 

var input = Console.ReadLine();

try {

var n = long.Parse(Console.ReadLine());

//TODO:

}

Catch

{

      Console.WriteLine($"{input}can't fit in any type");

}

0
spiderbait90 avatar spiderbait90 63 Точки

Задачата няма да ми я зачете по този начин....само на един input имам право....

Задачата е номер 18 в този линк:

https://softuni.bg/trainings/resources/officedocument/11849/exercise-problem-descriptions-programming-fundamentals-january-2017

искам да е реша по моя метод.....понеже съм доста близко :D

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