Форум программистов, компьютерный форум CyberForum.ru

Проверить, является ли год високосным - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 145, средняя оценка - 4.94
programist alenka
0 / 0 / 0
Регистрация: 18.03.2009
Сообщений: 22
24.03.2009, 15:45     Проверить, является ли год високосным #1
1.Написать програму которая проверяет являєтся год вісокосним

2.составить програму которая выводит на екран меню 1.Первое 2.Второе 3.Трете.И взависимости от вибраного пункта выдает одно из сообщений(получите суп,получите картошку,получите кампот,оставайтесь голодным)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2009, 15:45     Проверить, является ли год високосным
Посмотрите здесь:

является ли год високосным C++
C++ Проверка для заданного года, является ли он високосным
Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным (кратен 4, если заканчивается на 00, то еще кр C++
C++ Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным
C++ Написать программу, которая проверяет, является ли год високосным
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
30.08.2009, 18:55     Проверить, является ли год високосным #21
В libc нашел макрос:
C
1
#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
30.08.2009, 22:39     Проверить, является ли год високосным #22
я хотя и не люблю макросы, но в данном случае это, наверное, наиболее удачный вариант.
wariorswars
2 / 2 / 0
Регистрация: 12.08.2011
Сообщений: 29
30.09.2013, 03:10     Проверить, является ли год високосным #23
Цитата Сообщение от odip Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <stdlib.h>
 
int is_leap_year( int year );
 
int main( int argc, char *argv[] ) {
    
int i, year;
 
argc--; argv++;
for ( i= 0; i<argc; i++ ) {
    year= atoi( argv[i] );
    printf( "year=%d leap=%d\n", year, is_leap_year( year ) );
}
return 0;
 
} /* main() */
 
 
int is_leap_year( int year ) {
 
return (year%100 == 0) ? (year%400 == 0) : (year%4 == 0);
 
} /* is_leap_year() */
А можно и так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int year;
    char str[] = "Високостный", str1[] = "Не високостный";
    system("chcp 1251 > nil");
    
    printf("Ввести вреамя года и напечатать является ли он високостным\n");
    scanf("%d", &year)&&
        printf("%s\n",(year%4==0 || (year%100!=0 && year%400==0)) ?  str : str1);
    
    system("pause");
}
numizmat
0 / 0 / 0
Регистрация: 18.01.2015
Сообщений: 4
08.09.2015, 11:07     Проверить, является ли год високосным #24
Добавлю может кому понадобиться. Здесь еще проверяется ввод дней в феврале..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    int visokos;
    int year, month, day;
    int k = 0;
    int days_v_godu[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    string mes = "Вы ввели неправильно значение, повторите ввод";
 
    while (k != 1)
    {
        cout << "Введите год = ";
        cin >> year;
        if (year >= 0){
            visokos = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? 1 : 0;
            k = 1;
        }
        else cout << mes << endl;
    }
    
        for (;;)
        { cout << "Введите месяц ="; cin >> month;
            if ((month >= 1) && (month <= 12))
             { cout << "Введите день ="; cin >> day;
                 { if ((day <= days_v_godu[month+visokos]) && (day >= 0))
                      break;
                    else cout << mes << endl;
                 }
             }
            else cout << mes << endl;
            }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2015, 15:20     Проверить, является ли год високосным
Еще ссылки по теме:

C++ Дано натуральное число n. Определить, является ли високосным год с таким номером
C++ Проверить, является ли год високосным
C++ Используя функцию year проверки ли год високосным

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SmittWesson
 Аватар для SmittWesson
120 / 169 / 17
Регистрация: 04.06.2014
Сообщений: 1,273
21.10.2015, 15:20     Проверить, является ли год високосным #25
Знаю, что некротема. Знаю, что ТС уже никогда не появится. Но, стала задача, получить старшее число месяца, учитывая все високосные годы, включая "особые" такие как 2000, 2400 и т.д.
Вот, что у меня получилось:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct SDateTime
{
  int time;// Время в формате hour * 100 + minute
  unsigned short
  day,    // день недели 0-6
  number,// число 1-31
  month, // месяц 1-12
  year;  // год
};
 
SDateTime date = ParseDateTime(Now());// Получаем текущую дату, день недели и время, не важно как
  int num[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
  // Определяем високосный или не високосный год
  int year = date.year;
  if(date.month == 2)// это февраль? Если февраль, делаем проверку
    if((year % 4 == 0 && year % 100 == 0 && year % 400 == 0) ||// Проверяем, делится ли год на все делители
      (year % 4 == 0 && year % 100 != 0 && year % 400 != 0)) // Проверяем, делится ли год на 4 без остатка и на 100-400 с остатком
      date.number = num[date.month-1] + 1;// Високосный - прибавляем единичку
    else date.number = num[date.month - 1];// Не високосный - просто переписываем.
Yandex
Объявления
21.10.2015, 15:20     Проверить, является ли год високосным
Ответ Создать тему
Опции темы

Текущее время: 09:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru