Малко помощ за Problem 6. Four-Digit Number


1

Write a program that takes as input a four-digit number in format abcd (e.g. 2011) .The number has always exactly 4 digits and cannot start with 0.

Здравейте,

моля някой да ми даде насока , как да проверя дали числото от задачата започва с 0 ?Другите условия съм ги изпълнил , но само това ми остана. Дали не трябва да хвана символа с char и да намеря съответствие с ASC II кода на символа 0? Хрумна ми нещо такова :

(intpuValue) < 1000 || (inputValue) > 9999) , но така не хващам множеството 01000 - 09999 ,затова ми трябва. Фактически не съм сигурен дали изобщо трябва да правя такава валидация в тази задача , но все пак искам да я направя за упражнение. 




Отговори



1

Благодаря за напомнянето, Антоне!

Аз бях забравила, че не трябва да има нула, и зададох сега такова условие:

        do  // validates number input
        {
            Console.Write("\nPlease enter a four-digit number between 1000 and 9999: ");
            input = Console.ReadLine();

        } while ((!int.TryParse(input, out num)) || (input.Length != 4) || num < 1000);

и тествах - работи, реално наистина не можеш да имаш число под 1000, при input = 0999, или 0060, програмата ти повтаря въпроса, че числото трябва да е между 1000 и 9999, да на 01000 също дава грешка, но за какво ти е 01000, нали искаш 4-цифрено число?




2

             if ((number / 1000 == 0))
        {
            Console.WriteLine("Please write a number which starts not with \"0\"!");
        }


Според мен това е най-лесния вариант делиш на 1000, колкото е числото на хилядите в четири цифрено число и готово.


от Gasan (35 точки)


0
Това ми е оригиналното условие (userValue / 1000 == 0) || (userValue) < 1000 || (userValue) > 9999).Така че и аз съм го задал така , но това не работи докато не се зададе (input.Length != 4) , а на мене това ми липсваше също .Сега ще комбинирам нещата за да видя дали ще се получи благодаря ви за отговорите ;)

от Anton_Etimov (65 точки)