C/C++

Задача на C

Сама задача:
Помогите, пожалуйста!
int days [ 12 ] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int year = 1984;
int month = 2; // февраль к примеру
int result;

int main () {

result = days [ month ];
if ( year % 4 == 0 && month == 2 ) result++; // год высоткосный, в феврале добавляем 1 день

printf ( "%d ", result );

return ( 0 );

} // end main
Дмитрий Бабушкин
Дмитрий Бабушкин
77 892
Лучший ответ
Александр Десятков а то, что написано ниже - неправильно? или как
№ 4
 #include  
using namespace std;
bool is_leap(int year) {
bool result;
if (year % 4 != 0) result = false;
else if (0 == year % 400) result = true;
else if (0 == year % 100) result = false;
else result = true;
return result;
}
int days(int year, int month) {
if (month < 1 || month > 12 || year < 1) return 0;
int months[]{ 365, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (month != 2 || !is_leap(year)) return months[month];
return 29;
}
int input(const char* msg) {
cout > value;
cin.ignore(0x1000, '\n');
return value;
}
int main() {
const auto year = input("Year: ");
const auto month = input("Month: ");
const auto quantity = days(year, month);
cout c ? "Вера" : "Валя");
cout
В феврале 28 дней, а если число года делится на 4, то 29, но если в конце числа года два нуля, то есть число года делится на 100 без остатка, то в феврале всё же 28 дней; однако если при этом число года делится на 400, то в феврале всё таки опять 29 дней. Поэтому можно так:
#include <stdio.h>
int main()
{
int year, month,
days[12] = {31, 28, 31, 30,
31, 30, 31, 31, 30, 31, 30, 31};
printf("year month: ");
scanf("%d%d", &year, &month);
if (year % 4 == 0) days[1]++;
if (year % 100 == 0) days[1]--;
if (year % 400 == 0) days[1]++;
printf("%d\n", days[month - 1]);
}
ЖК
Женя Куликов
66 572
Александр Десятков а то, что написано выше - неправильно? или как