По номеру года вывести его название - C#
Формулировка задачи:
Здравствуйте, умы
В чем вопрос, можно ли оптимизировать данный код и исправить его на "нормальный", потому что этот работает на костылях
Там я отнимаю:
Есть вот такая вот задача:
В восточном календаре принят 60-летний цикл, состоящий из 12- летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. По номеру года вывести его название, если 1984 год был началом цикла — годом зеленой крысы. Написать программу с использованием оператора switch/case.using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Третее_задание { class Program { static void Main(string[] args) { int raschet, year; string year_name; Console.Write("Input year -> "); year = Convert.ToInt32(Console.ReadLine()); raschet = (year % 12) + 1; switch (raschet) { case 0: Console.ForegroundColor = ConsoleColor.Green; break; case 1: Console.ForegroundColor = ConsoleColor.Red; break; case 2: Console.ForegroundColor = ConsoleColor.Yellow; break; case 3: Console.ForegroundColor = ConsoleColor.White; break; case 4: Console.ForegroundColor = ConsoleColor.Cyan; break; case 5: Console.ForegroundColor = ConsoleColor.Green; break; case 6: Console.ForegroundColor = ConsoleColor.Red; break; case 7: Console.ForegroundColor = ConsoleColor.Yellow; break; case 8: Console.ForegroundColor = ConsoleColor.White; break; case 9: Console.ForegroundColor = ConsoleColor.Cyan; break; case 10: Console.ForegroundColor = ConsoleColor.Green; break; case 11: Console.ForegroundColor = ConsoleColor.Red; break; default: Console.ForegroundColor = ConsoleColor.Gray; break; } Console.WriteLine("Остаток от деления --> " + raschet); // Обратно меняем цвет на серый Console.ForegroundColor = ConsoleColor.Gray; raschet = 0; raschet = (year % 12) - 4; year_name = "Ошибочка вышла [2]."; switch (raschet) { case 0: year_name = "Год крысы"; break; case 1: year_name = "Год быка"; break; case 2: year_name = "Год тигра"; break; case 3: year_name = "Год кролика"; break; case 4: year_name = "Год дракона"; break; case 5: year_name = "Год змеи"; break; case 6: year_name = "Год лошади"; break; case 7: year_name = "Год козы"; break; case 8: year_name = "Год обезьяны"; break; case 9: year_name = "Год петуха"; break; case 10: year_name = "Год собаки"; break; case 11: year_name = "Год кабана"; break; default: Console.WriteLine("Ошибочка вышла."); break; } Console.WriteLine("Название года -- > " + year_name); } } }
(year % 12) - 4;
Тут я прибавляю:(year % 12) + 1;
Но это же не правильно, но все же... как-то с натяжкой работает. Прошу Вас, кто читает это помочь мне в реализации моей просьбыРешение задачи: «По номеру года вывести его название»
textual
Листинг программы
using System; namespace YearColor { class Program { private static readonly string[] _yearNames = new[] { "обезьяны", "петуха", "собаки", "кабана", "крысы", "быка", "тигра", "кролика", "дракона", "змеи", "лошади", "козы" }; private static void Main() { Console.Write("Input year -> "); int year = Convert.ToInt32(Console.ReadLine()); int raschet; Console.ForegroundColor = GetYearColor(year, out raschet); Console.WriteLine("Остаток от деления --> " + raschet); // Обратно меняем цвет на серый Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine("Название года -- > " + GetYearName(raschet)); Console.ReadKey(); } private static string GetYearName(int year) { if (year < 1 || year > 12) throw new ArgumentOutOfRangeException(year.ToString()); return "Год " + _yearNames[year - 1]; } private static ConsoleColor GetYearColor(int year, out int yearNumber) { yearNumber = year % 12 + 1; switch (yearNumber % 5) { case 0: return ConsoleColor.Green; case 1: return ConsoleColor.Red; case 2: return ConsoleColor.Yellow; case 3: return ConsoleColor.White; } return ConsoleColor.Cyan; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д