Для заданного числа напечатать фразу "Мне 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);
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с стандартными функциями ввода-вывода и кодирования строк.
  2. Объявляем массив с возможными окончаниями числительных в зависимости от их количества.
  3. Создаём функцию foo, которая принимает целочисленный аргумент n и возвращает указатель на строку с окончанием.
  4. Проверяем, если число больше 20 или меньше 5, то выбираем окончание год и возвращаем его.
  5. Если число от 5 до 9 включительно, то выбираем окончание года и возвращаем его.
  6. В остальных случаях возвращаем окончание лет.
  7. В функции main создаём цикл, который будет вызывать функцию foo для каждого числа от 1 до 100 и выводить результат на экран.
  8. Выполняем выход из программы с кодом успеха.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы