Как модифицировать календарь, чтобы он начинался с произвольного дня, а не только с понедельника - C (СИ)
Формулировка задачи:
Пользователь вводит КОЛИЧЕСТВО ДНЕЙ В МЕСЯЦЕ и Число (день недели 1-понедельник, 2-вторник, и т.д.)с которой начинается неделя.
Вывести календарь на экран
P.S. У меня имеется календарь, который запрашивает количество дней в месяце и всегда начинается с понедельника.
Как модифицировать, чтобы начинался с произвольного дня, введенного самим.
[#include <stdio.h> int main(void) { int i, n; scanf("%d", &n); printf("Mon\tTue\tWed\tThu\tFri\tSat\tSun\n"); for (i = 1; i <= n; i++) { printf( "%d \t" , i); if (i % 7 == 0) printf( "\n"); } return 0; }
Решение задачи: «Как модифицировать календарь, чтобы он начинался с произвольного дня, а не только с понедельника»
textual
Листинг программы
#include <stdio.h> int main(void) { int days; int weekday; while( 1 ) { puts("Input days and weekday:"); scanf("%d %d", &days, &weekday); if( days < 1 || days > 31 || weekday < 1 || weekday > 7 ) { break; } puts("Mon\tTue\tWed\tThu\tFri\tSat\tSun"); int i; for( i = 2 - weekday; i <= days; ++i ) { if( i < 1 ) { putchar('\t'); } else { printf("%d\t", i); if( weekday == 7 ) { weekday = 1; putchar('\n'); } else { ++weekday; } } } putchar('\n'); } return 0; }
Объяснение кода листинга программы
- Пример модифицированного кода календаря, который начинается с произвольного дня
- Ввод данных: день и день недели (1-7, где 1 - понедельник, 7 - воскресенье)
- Проверка введенных данных: если день или день недели некорректны (меньше 1 или больше 31), то выход из цикла
- Вывод календаря: таблица с днями недели и числами от 1 до N (где N - введенный день)
- Условие для вывода: если день недели больше 6 (суббота и воскресенье), то выводим новую строку
- Для числа 1 (понедельник): печатаем только одну табуляцию
- Для остальных чисел: печатаем число и табуляцию
- Условие для смены дня недели: если день недели равен 7 (воскресенье), то сбрасываем его в 1 (понедельник) и печатаем символ новой строки
- Если день недели меньше 7 (все дни кроме воскресенья): увеличиваем его на 1
- После вывода всех чисел и дней недели: печатаем символ новой строки
- Выход из программы: возвращаем 0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д