Даны три натуральных числа обозначают день месяц и год, указать дату предыдущего дня - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Даны три натуральных числа обозначают день месяц и год.Указать дату предыдущего дня

Решение задачи: «Даны три натуральных числа обозначают день месяц и год, указать дату предыдущего дня»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <glib.h>
  3.  
  4. int main(void) {
  5.     int d, m, y;
  6.    
  7.     while ( printf("Space separated day month and year: ") && scanf("%d%d%d", &d, &m, &y) == 3 ) {
  8.         if ( g_date_valid_dmy(d, m, y) ) {
  9.             GDate * date = g_date_new_dmy(d, m, y);
  10.            
  11.             g_date_subtract_days(date, 1);
  12.             printf("Previous date: %d %d %d\n", g_date_get_day(date), g_date_get_month(date), g_date_get_year(date));
  13.            
  14.             g_date_free(date);
  15.         }
  16.         else
  17.             printf("Wrong parameters!\n");
  18.     }
  19.    
  20.     return 0;
  21. }

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

В этом коде:

  1. Переменные d, m, y используются для хранения дня, месяца и года, введенных пользователем.
  2. Готовая библиотека Glib используется для работы с датами.
  3. Функция g_date_valid_dmy() проверяет корректность введенных пользователем параметров.
  4. Функция g_date_new_dmy() создает объект даты из введенных пользователем параметров.
  5. Функция g_date_subtract_days() вычитает из объекта даты один день.
  6. Функции g_date_get_day(), g_date_get_month() и g_date_get_year() получают день, месяц и год из объекта даты.
  7. Функция g_date_free() освобождает память, занятую объектом даты.
  8. Если введенные параметры некорректны, выводится сообщение об ошибке.
  9. Код выполняется в цикле, пока пользователь не введет некорректные параметры или не отправит сигнал конца файла.

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


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

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

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы