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

С++ для начинающих

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

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

24.03.2009, 15:45. Просмотров 19364. Ответов 24
Метки нет (Все метки)

1.Написать програму которая проверяет являєтся год вісокосним

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

является ли год високосным C++
C++ Определить, является ли введенное значение года високосным, если введено корректное значение
C++ Проверка для заданного года, является ли он високосным
Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным (кратен 4, если заканчивается на 00, то еще кр C++
C++ Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным
C++ Написать программу, которая проверяет, является ли год високосным
C++ Дано натуральное число n. Определить, является ли високосным год с таким номером
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт С++
 Аватар для odip
7151 / 3291 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
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++ Проверить, високосный ли год, и вычислить сколько членов семьи родились в високосные годы
C++ Проверить, является ли год високосным
Проверить, является ли целое число трёхзначным, является ли оно квадратом C++
C++ Используя функцию year проверки ли год високосным
Программа, вычисляющая, является ли год високосным C++

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

Или воспользуйтесь поиском по форуму:
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     Проверить, является ли год високосным
Ответ Создать тему
Опции темы

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