Определить номер дня недели для K-го дня года, если известно, что в этом году 1 января было понедельником - C (СИ)
Формулировка задачи:
Дни недели пронумерованы следующим образом: 0 – воскресенье, 1 – понедельник, 2 – вторник, ... , 6 – суббота. Дано целое число K, лежащее в диапазоне 1–365. Определить номер дня недели для K-го дня года, если известно, что в этом году 1 января было понедельником
Cкажите, что не так?
#include <stdio.h> // для ввода-вывода
#include <conio.h>
int main()
{
int day;
printf( "Enter day of the year: ");
scanf("%f", &day);
while (day > 7)
day -= 7;
printf("Day of the week is:%g") ;
getch();
}Решение задачи: «Определить номер дня недели для K-го дня года, если известно, что в этом году 1 января было понедельником»
textual
Листинг программы
char *days[] = {
"воскресенье",
"понедельник",
"вторник",
"...",
"...",
"...",
"субб."
};
printf( "%s\n", days[k % 7] );
Объяснение кода листинга программы
В представленном коде:
- Объявлен массив строк
days[]с семью элементами, представляющими названия дней недели. - Используется оператор
%для определения остатка от деленияkна 7, который будет использоваться в качестве индекса в массивеdays[]. - С помощью функции
printf()выводится на экран значениеdays[k % 7], которое представляет собой название дня недели дляk-го дня года.