C/C++

Помогите, пожалуйста, написать код на C (Си)

Дан номер дня – целое число от 1 до 31 и месяца — целое число в диапазоне 1–12 (1 — январь, 2 — февраль и т. д.). Вывести дату в виде текста (например, «пятое января»).
:Y
:d Yur|{@ :р
115
   Как, до сих пор не помогли??? Ведь это не новая задача.

   Правда, я не сумею составить код программы, но принципы решения известны.

char** m_Name = {"января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"};
char** day_ord = {"тридцатое", "первое", "второе", "третье", "четвертое", "пятое", "шестое", "седьмое", "восьмое", "девятое", "десятое", "одиннадцатое", "двенадцатое", "тринадцатое", "четырнадцатое", "пятнадцатое", "шестнадцатое", "семнадцатое", "восемнадцатое", "девятнадцатое", "двадцатое"};

   Чтобы получить текстовое название месяца в родительном падеже следует отнять из номера месяца единицу и подставить как индекс в массиве m_Name, вот так: m_Name[month - 1]

   Труднее преобразовать номер дня в порядковое числительное. Возможны два случая: простое числительное и составное числительное.
◉  Простые числительные соответствуют числам в диапазоне [1..20] и числу 30.
◉  Составные числительные соответствуют остальным числам (диапазон [21..29] и число 31).

★ Простые порядковые числительные перечислены в массиве day_ord, исключение — "тридцатое", это слово выбирается по индексу 0.

   Составные порядковые числительные состоят из двух слов: первое — количественное числительное, обозначающее один из десятков: "двадцать" или "тридцать", второе — простое порядковое числительное в диапазоне [1..9].

   В первую очередь следует проверить, является ли введённый номер дня 30? Если да, то обнулить.

if (30 == day) day = 0;

   Остаётся сравнить номер дня с числом 20: если больше, то числительное составное, иначе — простое.
★ Кстати, даже в этом случае ветвь else не понадобится: если day > 20, то достаточно вывести "двадцать" либо "тридцать", после чего оставить от номера дня только младшую цифру: day %= 10
   А следующая часть общая и для простых, и для составных числительных: нужно вывести строку из массива day_ord по индексу в day, а именно: day_ord[day]

   Только не забывайте между словами выводить пробелы!
ВВ
Валерий Волонцевич
16 172
Лучший ответ
Валерий Волонцевич Да! Насчёт того, как выбирать между словами "двадцать" и "тридцать": слово "тридцать" выводится ТОЛЬКО для числа 31. Остальные составные числительные выводятся со словом "двадцать".
Валерий Волонцевич Вполне разумно сначала выполнить конкатенацию слов и пробелов, а уже потом вывести результат.