Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Abamaa
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 25
1

Дано натуральное число n. Определить, является ли високосным год с таким номером

31.03.2014, 09:16. Просмотров 3356. Ответов 38
Метки нет (Все метки)

Ребята , помогите справиться с задачей. Ни как не получается решить.(
"Год является високосным, если его год кратен 4, однако из кратных 100 високосными являются, лишь кратные 400, например, 1700, 1800, и 1900-невисокосные годы, 2000-високосный. Дано натуральное число n. Определить, является ли високосным год с таким номером."
Буду премного благодарен вам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2014, 09:16
Ответы с готовыми решениями:

Определить, является ли введенный пользователем год високосным
3)На языке программирования С++ напишите программу, определяющую, является ли...

Дано натуральное четырехзначное число n. Определить, является ли это число перевертышем
Дано натуральное четырехзначное число n. Определить, является ли это число...

Дано натуральное число N. Определить, является ли оно палиндромом. Число-палиндром можно читать справа налево и слева направо одинаково. Например,
Дано натуральное число N. Определить, является ли оно палиндромом....

Дано натуральное число. Определить, является ли оно четным, или оканчивается цифрой 3
Дано натуральное число. Определить, является ли оно четным, или оканчивается...

Дано натуральное число n. Выяснить, является ли оно полным квадратом.Определить функ-цию, позволяющую распознавать полные квадраты
Вот пока что сделал, дальше домозговать не могу. #include "stdafx.h" #include...

38
bradobrei
Продам уран 238U
120 / 120 / 126
Регистрация: 22.01.2013
Сообщений: 298
31.03.2014, 09:24 2
C++
1
2
if((n % 4 == 0) && (n % 100 != 0) && (n % 400 == 0))
   cout<<"высокосный";
0
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
31.03.2014, 09:40 3
Цитата Сообщение от bradobrei Посмотреть сообщение
if((n % 4 == 0) && (n % 100 != 0) && (n % 400 == 0))
до 400 дело не доходит
проверь 2000
(n % 4 == 0) истина
(n % 100 != 0) ложь, вываливаемся


смени условие
C++
1
if((n % 4 == 0) &&  ((n % 400 == 0) || (n % 100 != 0)) )
0
IrineK
Заблокирован
31.03.2014, 09:43 4
C++
1
2
3
int IsLeapYear (int year)
{   return (year & 3) == 0 && ((year % 25) != 0 || (year & 15) == 0);
}
0
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
31.03.2014, 09:57 5
Цитата Сообщение от IrineK Посмотреть сообщение
(year & 15) == 0
переведи
насколько я понимаю это аналог
C++
1
(year %16) == 0
тогда 400 это 16 *25
зачем тогда
Цитата Сообщение от IrineK Посмотреть сообщение
(year % 25) != 0
0
Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
31.03.2014, 10:05 6
IrineK, о да, давайте, возвращайте целое число из булевой фукнции
0
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
31.03.2014, 10:11 7
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
возвращайте целое число из булевой фукнции
а где там целое число?

да и функция вообще то int возвращает
так что уж наоборот
булево значение из целочисленной функции

а второй вопрос, а что нельзя?
вот тебе пример смеси булевых и целочисленных превращает любое ненулевое число в 1
C++
1
a=!!b;
0
Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
31.03.2014, 10:13 8
ValeryS, да, спасибо за замечание - пишу сонный, могу элементарное путать. Наоборот: из целочисленной функции булево значение
0
IrineK
Заблокирован
31.03.2014, 10:41 9
Anton_Kretov не подскажете, как в плюсах определен тип bool?
0
Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
31.03.2014, 10:59 10
IrineK, typedef int BOOL;
Но все-таки для новичка лучше писать так, чтобы ему было понятно.
0
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
31.03.2014, 11:33 11
Цитата Сообщение от IrineK Посмотреть сообщение
не подскажете, как в плюсах определен тип bool?
никак
это отдельный тип
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
typedef int BOOL;
BOOL с bool не путай
0
Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
31.03.2014, 11:51 12
Цитата Сообщение от ValeryS Посмотреть сообщение
BOOL с bool не путай
Мне кажется, или он именно это и хотел увидеть? Вообще bool - отдельный тип, независимый от целочисленного. Но что он имел ввиду, написав это:
Цитата Сообщение от ValeryS Посмотреть сообщение
не подскажете, как в плюсах определен тип bool?
0
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
01.04.2014, 08:23 13
Цитата Сообщение от Abamaa Посмотреть сообщение
Год является високосным, если его год кратен 4, однако из кратных 100 високосными являются, лишь кратные 400, например, 1700, 1800 и 1900-невисокосные годы, 2000-високосный.
На сколько мне известно, конец тысячелетия високосен не зависимо от иных кратностей. 3000-й, например. И что это за "год года" такой загадочный?

Добавлено через 1 минуту
Цитата Сообщение от Abamaa Посмотреть сообщение
Дано натуральное число n. Определить, является ли високосным год с таким номером.
В твоей постановке
C++
1
return (((n%4)==0)&((n%100)!=0))||((n%400)!=0);
.
0
Abamaa
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 25
01.04.2014, 08:27  [ТС] 14
Ну это уж не я придумывал задачу)

Добавлено через 2 минуты
А можете написать полостью программный код?
0
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
01.04.2014, 08:28 15
А можешь поставить целиком задачу? Что задано, то я и написал и не я виноват в том, что получилось только тело функции, а не программа. Давай задание на всё, начиная с интерфейса, - можно будет написать целиком программу.
0
Abamaa
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 25
01.04.2014, 08:32  [ТС] 16
2. Год является високосным, если его год кратен 4, однако из кратных 100 високосными являются, лишь кратные 400, например, 1700, 1800 и 1900-невисокосные годы, 2000-високосный. Дано натуральное число n. Определить, является ли високосным год с таким номером.

Добавлено через 37 секунд
Вот, это все что написано.

Добавлено через 2 минуты
Я предполагаю что должно иметь вид.
> (вводишь сюда год) <Enter>.
>(выводит:Високосный или нет)
0
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
01.04.2014, 08:42 17
Цитата Сообщение от Abamaa Посмотреть сообщение
Вот, это все что написано.
Читай:
Цитата Сообщение от Abamaa Посмотреть сообщение
Дано натуральное число n.
, то есть оно уже введено, но в целую программу пользователю надо будет этот ввод выполнить. Как именно? Это первая проблема.
Цитата Сообщение от Abamaa Посмотреть сообщение
Определить, является ли високосным год с таким номером.
Строка, которую я дал, определяет. А дальше что с этим делать? Учесть в условии при определении того, с какого для недели начнётся следующий год? Вывести на экран? Вывести в текстовый файл? В бинарный? На каком языке? Ведь строки "Yes." и "Да." разные. На сколько развёрнуто? А может учесть при подсчёте возраста в днях? А если вывести на экран, то в окно, или в консоль? А если в окно, то в какой компонент интерфейса? А если в файл, то в какое место? И в каком коде? Это вторая проблема. Программа целиком обязана не только что то там определить, но и поддержать ввод и выполнить вывод, соответственно в завершённом ТЗ эти операции должны быть отражены в виде подзадач. А в таком виде задачу можно решать очень уж разнообразно и в рамках разных тем.
0
Abamaa
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 25
01.04.2014, 08:45  [ТС] 18
C++
1
2
3
4
5
6
7
8
int year;
 
cin >> year;
 
if ((year%4==0 && (year%100!=0)) || (year%400==0))
    cout << "Високосный";
else
    cout << "Обычный";
а что дальше?
0
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
01.04.2014, 08:52 19
Ну можешь в main завернуть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostrem>
int main ()
{
 using std;
 int year;
 cin >> year;
 if ((year%4==0 && (year%100!=0)) || (year%400==0))
 cout << "Високосный";
 else
 cout << "Обычный";
 return 0;
}
, а можешь в вызываемую в цикле функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
void CheckYear();
int main
{
 char c;
 do
 {
  CheckYear();
  std::cout<<std::endl<<"Продолжить? (д/н)"<<std::endl;
  std::cin>>c;
 } while ((c=='д')||(c!=='Д'));
 return 0;
}
void CheckYear()
{
 using std;
 int year;
 cin >> year;
 if ((year%4==0 && (year%100!=0)) || (year%400==0))
 cout << "Високосный";
 else
 cout << "Обычный";
}
.
0
Abamaa
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 25
01.04.2014, 09:00  [ТС] 20
Спасибо, уже сам догадался))
Не могли бы еще с одной задачкой помочь?

 Комментарий модератора 
Одна тема - одна задача
0
01.04.2014, 09:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2014, 09:00

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

Проверить, является ли год високосным
#include &lt;iostream&gt; bool is_leap(int year) { if(year % 4 == 0) { ...

Проверка, является ли год високосным
Написать программу, которая проверяет является ли год високосным.( год является...


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

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

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