Для заданного числа напечатать фразу "Мне n лет" - C (СИ)
Формулировка задачи:
помогите решить задачи оператор switch Дано целое число от 1 до 99. Определить возраст человека в годах. Для этого числа напечатать фразу -
Мне n лет. Участь, что внекорых ситуациях слово лет надо заменить на год или года.
Решение задачи: «Для заданного числа напечатать фразу "Мне n лет"»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> const char * years[] = {" год", " года", " лет"}; char * foo (n) { char * ptr; if(n > 20 || n < 5){ if(n % 10 == 1){ ptr = years[0]; } else if (n % 10 < 5){ ptr = years[1]; } else { ptr = years[2]; } } else{ ptr = years[2]; } return ptr; } int main(int argc, char ** argv) { int i = 1; for(; i < 100; ++i){ printf("мне %d %s\n", i, foo(i)); } exit(EXIT_SUCCESS); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с стандартными функциями ввода-вывода и кодирования строк.
- Объявляем массив с возможными окончаниями числительных в зависимости от их количества.
- Создаём функцию foo, которая принимает целочисленный аргумент n и возвращает указатель на строку с окончанием.
- Проверяем, если число больше 20 или меньше 5, то выбираем окончание
год
и возвращаем его. - Если число от 5 до 9 включительно, то выбираем окончание
года
и возвращаем его. - В остальных случаях возвращаем окончание
лет
. - В функции main создаём цикл, который будет вызывать функцию foo для каждого числа от 1 до 100 и выводить результат на экран.
- Выполняем выход из программы с кодом успеха.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д