Ввести дату, напечатать номер дня года, соответствующий этой дате - C (СИ)
Формулировка задачи:
Ввести дату в формате дд.мм.гггг, напечатать номер дня года, соответствующий этой дате(1 января -- 1-й день и т.д.)
Решение задачи: «Ввести дату, напечатать номер дня года, соответствующий этой дате»
textual
Листинг программы
#include<stdio.h> #include<stdlib.h> #include<conio.h> int main() { int d,m,y; system("chcp 1251 > nul"); lab: printf("Введите дату dd:mm:yyyy\n"); scanf("%d:%d:%d",&d,&m,&y); {m==1&&d>=1&&d<=31?printf("%d %s - %d день\n",d,"Января"",d) :m==2&&d>=1&&d<=29?printf("%d %s - %d день\n",d,"Февраля"",d) :m==3&&d>=1&&d<=31?printf("%d %s - %d день\n",d,"Марта"",d) :m==4&&d>=1&&d<=30?printf("%d %s - %d день\n",d,"Апреля"",d) :m==5&&d>=1&&d<=31?printf("%d %s - %d день\n",d,"Мая"",d) :m==6&&d>=1&&d<=30?printf("%d %s - %d день\n",d,"Июня"",d) :m==7&&d>=1&&d<=31?printf("%d %s - %d день\n",d,"Июля"",d) :m==8&&d>=1&&d<=31?printf("%d %s - %d день\n",d,"Августа"",d) :m==9&&d>=1&&d<=30?printf("%d %s - %d день\n",d,"Сентября"",d) :m==10&&d>=1&&d<=31?printf("%d %s - %d день\n",d,"Октября"",d) :m==11&&d>=1&&d<=30?printf("%d %s - %d день\n",d,"Ноября"",d) :m==12&&d>=1&&d<=31?printf("%d %s - %d день\n",d,"Декабря"",d) : printf("Ошибка\n"); goto lab;} system("pause"); }
Объяснение кода листинга программы
В коде указаны следующие действия:
- Ввод даты: Пользователю предлагается ввести дату в формате dd:mm:yyyy. Для ввода используется функция scanf().
- Проверка введенной даты: С помощью условных операторов if-else происходит проверка введенной даты. Если день и месяц введены верно (от 1 до 31 для января и марта, от 1 до 29 для февраля, от 1 до 30 для апреля, июня, сентября и ноября, от 1 до 31 для мая, августа, декабря), и год введен верно (от 0001 до 9999), то выводится номер дня года. Если дата введена некорректно, выводится сообщение об ошибке.
- Вывод номера дня года: Используется функция printf() для вывода номера дня года. Форматирование вывода включает в себя заполнение пробелами перед и после знака
-
. - Повторение ввода: Если введенная дата некорректна, программа возвращается к шагу 1 с помощью инструкции goto.
- Завершение программы: После окончания цикла программа выводит сообщение о завершении работы с помощью функции system().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д