Дано целое число n (1 n 99), определяющее возраст человека (в годах).
Для этого числа напечатать фразу "мне n лет", учитывая, что при некоторых
значениях n слово "лет" надо заменить на слово "год" или "года".
!Решить нужно обязательно с использованием switch case!
C#
Помогите решить задачу C#! С помощью switch case.
switch так switch, орать-то чего?
using System;
class Program {
static void Main() {
while (true) {
Console.Write("1..99: ");
var s = Console.ReadLine();
if (s != null) {
try {
var n = int.Parse(s);
Console.WriteLine(AgeString(n));
} catch (Exception) { }
}
}
}
static string AgeString(int age) {
var a = "лет";
var b = "год";
var c = "года";
var years = new string[] { a, b, c, c, c, a, a, a, a, a };
var i = (age / 10 % 10 != 1 ? 1 : 0) * (age % 10);
var str = $"мне {age} ";
switch (i) {
case 0: str += $"{years[i]}"; break;
case 1: str += $"{years[i]}"; break;
case 2: str += $"{years[i]}"; break;
case 3: str += $"{years[i]}"; break;
case 4: str += $"{years[i]}"; break;
case 5: str += $"{years[i]}"; break;
case 6: str += $"{years[i]}"; break;
case 7: str += $"{years[i]}"; break;
case 8: str += $"{years[i]}"; break;
case 9: str += $"{years[i]}"; break;
default: str = "мне всегда 17 лет"; break;
}
return str;
}
}
Асхат Крушпеков
Интересно, как вы поняли через текст, что я ору? Восклицательный знак я использовал с целью привлечения внимания именно на то, что решить нужно switch case'ом.
switch year {
case 1:
sYear = "год";
break;
case 2:
case 3:
case 4:
sYear = "года";
break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 0:
sYear = "лет";
break;
}
switch(n % 10)
{
case 1:
// год
break;
case 2:
case 3:
case 4:
// года
break;
default: // лет
break;
}
{
case 1:
// год
break;
case 2:
case 3:
case 4:
// года
break;
default: // лет
break;
}
String s = n switch {
1 or 21 or 31 or 41 or 51 or 61 or 71 or 81 or 91 => "год",
2 or 3 or 4 /*22 23 24 32 33 и тд*/=> "года",
_ => "лет"
};
1 or 21 or 31 or 41 or 51 or 61 or 71 or 81 or 91 => "год",
2 or 3 or 4 /*22 23 24 32 33 и тд*/=> "года",
_ => "лет"
};