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

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

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

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

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

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

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

Проверить, является ли год високосным - C++
Написать программу, которая проверяет, является ли год високосным (операторы if, else)

является ли год високосным - C++
Написать программу, которая проверяет является ли год високосным.( год является високосным, если его номер кратен 4, но не кратен 100, а...

Программа, вычисляющая, является ли год високосным - C++
Создайте программу, вычисляющую, является ли год високосным.

Написать программу, которая проверяет, является ли год високосным - C++
Написать программу, которая проверяет, является ли год високосным. Помогите пожалуйста

Дано натуральное число n. Определить, является ли високосным год с таким номером - C++
Ребята , помогите справиться с задачей. Ни как не получается решить.( "Год является високосным, если его год кратен 4, однако из кратных...

Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным - C++
Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным (кратен 4, если заканчивается на 00,...

25
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
29.08.2009, 01:22 #16
Цитата Сообщение от odip Посмотреть сообщение
C++
1
2
3
bool isLeap (long year){
  return  (year > 1582 && year % 4 == 0 && (year % 100 == 0 && year % 400 != 0);
}
1) Скобки нет.
2) Если поставить скобку: 1900 - високосный, 2000 - не високосный,
а на самом деле все наоборот.
а какая разница? кому нужно - доведет до ума. сколько можно эту ерунду талдычить. кстати, пробелы правильно расставлены?
0
odip
Эксперт С++
7158 / 3220 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
29.08.2009, 13:58 #17
2novi4ok: тогда ты пиши что код не проверял, но вот накалякал тут ...
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
30.08.2009, 18:46 #18
Цитата Сообщение от odip Посмотреть сообщение
2novi4ok: тогда ты пиши что код не проверял, но вот накалякал тут ...
чем бульбы пускать, привели бы исправленный код. полезнее всем было бы.
0
odip
Эксперт С++
7158 / 3220 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
30.08.2009, 18:47 #19
Так выше посмотри - http://www.cyberforum.ru/cpp/thread27297-page2.html#post251598
1
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
30.08.2009, 18:52 #20
Цитата Сообщение от odip Посмотреть сообщение
ну вот! это же совсем другое дело! молодец!
0
odip
Эксперт С++
7158 / 3220 / 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))
1
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
30.08.2009, 22:39 #22
я хотя и не люблю макросы, но в данном случае это, наверное, наиболее удачный вариант.
1
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");
}
0
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;
            }
0
SmittWesson
120 / 170 / 17
Регистрация: 04.06.2014
Сообщений: 1,294
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];// Не високосный - просто переписываем.
0
Xorazm
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 32
20.06.2017, 16:37 #26
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
void LeapYear(int);
void main()
{
    int yr,rem1,rem2;
    printf("Введите год: ");
    scanf("%d",&yr);
    rem1 = yr%4 ; 
    rem2 = yr%100; 
    if((rem1 == 0) && (rem2!=0) || yr%400 == 0)
    {
        printf("данный год %d Высокосный год",yr);
    }
    else
    {
        printf("данный год %d Обычный год.",yr);
    }
}
0
20.06.2017, 16:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2017, 16:37
Привет! Вот еще темы с ответами:

Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным (кратен 4, если заканчивается на 00, то еще кр - C++
Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным (кратен 4, если заканчивается на 00,...

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

Проверка для заданного года, является ли он високосным - C++
Здравствуйте! Помогите пожалуйста подправить программу! Проверка для заданного года, является ли он високосным. Написать программу,...

Определить, является ли введенное значение года високосным, если введено корректное значение - C++
Определить, является ли введенное значение года високосным, если введено корректное значение.


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

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