Вывести строку «Мне N лет», обеспечив правильное согласование числа со словом «год» - C#
Формулировка задачи:
Вывести строку «Мне N лет», обеспечив правильное согласование числа со словом «год»,
например: N = 20 - «Мне 20 лет», N = 41 - «Мне 41 год», N = 12 - «Мне 12 лет».
Если пользователь введёт данные не соответствующие условию задачи - выдать сообщение об ошибке.
можно ли использовать подобное?
и вывод ошибки лучше через try catch сделать?
static void Main(string[] args)
{
Console.Write("ввод возраста:");
byte n = Convert.ToByte(Console.ReadLine());
Console.Write("Мне {0} ", n);
switch (n%10)
{
case 1 - 4 :
Console.Write("год");
break;
case 5 - 9:
Console.Write("лет");
break;
}
}
да обязательно операторы выбора
ну так ближе
static void Main(string[] args)
{
Console.Write("ввод возраста:");
byte n = Convert.ToByte(Console.ReadLine());
Console.Write("Мне {0} ", n);
int z = n % 10;
switch (z)
{ case 1:
if (z>=5&&z<=9|z==0)
Console.Write(" лет");
break;
case 2:
if (z >= 2 && z <= 4)
Console.Write(" года");
break;
case 3:
if (z==1)
Console.Write(" год");
break;
}
}Решение задачи: «Вывести строку «Мне N лет», обеспечив правильное согласование числа со словом «год»»
textual
Листинг программы
using System;
class test
{
static void Main()
{
int n;
int last;
bool ok = false;
do
{
Console.Write("Введите ваш возраст : ");
if (Int32.TryParse(Console.ReadLine(), out n) && n >= 0) ok = true;
}
while (!ok);//проверка на правильность введенных данных
Console.Write("Вам {0} ", n);
if (n > 19 || n < 10) ok = false;
switch(ok){
case false:
last = n % 10;
if (last == 1) Console.Write("год");
else if (last == 0 || last >= 5) Console.Write("лет");
else Console.Write("года");
break;
default: Console.Write("лет");
break;
}
Console.WriteLine();
}
}