Верно ли, что цифры данного трехзначного числа образуют возрастающую или убывающую последовательность - C#
Формулировка задачи:
Суть проблемы:Если ввести четырехзначное число,то программа выведет всё равно True или False.И ещё:если ввести буквы,то программа тоже будет работать.Как это устранить,подскажите,пожалуйста?
//Проверить истинность высказывания: «Цифры данного трехзначного числа образуют возрастающую или убывающую последовательность».
string x;
Console.WriteLine("Введите трехзначное число образующее возрастающую или убывающую последовательность");
x = Console.ReadLine();
if (x[0] < x[1] && x[1] < x[2] || x[2] < x[1] && x[1] < x[0])
Console.WriteLine("true");
else
Console.WriteLine("false");
Console.ReadKey();Решение задачи: «Верно ли, что цифры данного трехзначного числа образуют возрастающую или убывающую последовательность»
textual
Листинг программы
using System;
namespace CyberforumApp
{
class Program
{
static bool IsBlahBlah(int n)
{
if (n >= -9 && n <= 9) return false;
int prev = n % 10;
int next = (n /= 10) % 10;
n /= 10;
int drct = Math.Sign(prev - next);
if (drct == 0) return false;
prev = next;
while (n != 0 && Math.Sign(prev - (next = n % 10)) == drct)
{
prev = next;
n /= 10;
}
return n == 0;
}
static void Main()
{
Random rnd = new Random();
for (int i = 0; i < 20; ++i)
{
int x = rnd.Next(100, 999);
Console.WriteLine("{0}\t->\t{1}", x, IsBlahBlah(x));
}
}
}
}