Для каждой даты указать порядковый номер дня года, что отвечает этой дате - C (СИ)
Формулировка задачи:
Вот такая задачка:
В динамическую память занести последовательность дат у форме символьных рядков, что имеют формат День.Месяц.Год. Напечатать таблицу, в которой для каждой даты указать порядковый номер дня года, что отвечает этой дате. В программе создать и применить функцию, которая по заданной дате определяет порядковый номер дня соответствующего года, учитывая високосной ли год.
пример: 21.02.2000 – 52-й день года.
Нашел что високосным считается год, который целочисленно делится на 4, но не делится на 100, кроме год что делятся на 400.
Задачка интересная но не хватает времени и знаний для исполнения.
Буду благодарен за любую помощь.
Решение задачи: «Для каждой даты указать порядковый номер дня года, что отвечает этой дате»
textual
Листинг программы
#include <stdio.h> int main(void) { int dd, mm, yy, den=0, i; int a[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; printf("Введите дату: "); scanf("%d.%d.%d", &dd, &mm, &yy); if (yy%4==0) a[1]++; //проверка на високосный год for(i=0; i<mm-1; i++) den+=a[i]; den+=dd; printf("День: %d\n", den); }
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с вводом/выводом
- Объявление переменных: dd, mm, yy, den, i
- Массив a содержит количество дней в каждом месяце
- Вывод сообщения с просьбой ввести дату
- Считывание введенной даты в переменные dd, mm, yy
- Проверка на високосный год: если год делится на 4 без остатка, то добавляем 1 к значению в массиве a для февраля
- Инициализация переменной den значением 0
- Цикл для прохода по всем месяцам, начиная с 0 (январь) до mm-1 (исключая введенный месяц)
- Прибавляем к den значение из массива a для каждого месяца
- Прибавляем значение dd к den
- Выводим значение den, которое представляет собой порядковый номер дня в году
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д