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

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

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


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

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

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

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

Проверить, является ли заданный год високосным и вывести следующий високосный год
В первую строку выведите YES, если данный год является високосным и NO, если не является. Во второй...

38
Продам уран 238U
125 / 124 / 127
Регистрация: 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
Модератор
Эксперт по электронике
8357 / 6203 / 834
Регистрация: 14.02.2011
Сообщений: 21,562
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
Заблокирован
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
Модератор
Эксперт по электронике
8357 / 6203 / 834
Регистрация: 14.02.2011
Сообщений: 21,562
31.03.2014, 09:57 5
Цитата Сообщение от IrineK Посмотреть сообщение
(year & 15) == 0
переведи
насколько я понимаю это аналог
C++
1
(year %16) == 0
тогда 400 это 16 *25
зачем тогда
Цитата Сообщение от IrineK Посмотреть сообщение
(year % 25) != 0
0
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
31.03.2014, 10:05 6
IrineK, о да, давайте, возвращайте целое число из булевой фукнции
0
Модератор
Эксперт по электронике
8357 / 6203 / 834
Регистрация: 14.02.2011
Сообщений: 21,562
31.03.2014, 10:11 7
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
возвращайте целое число из булевой фукнции
а где там целое число?

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

а второй вопрос, а что нельзя?
вот тебе пример смеси булевых и целочисленных превращает любое ненулевое число в 1
C++
1
a=!!b;
0
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
31.03.2014, 10:13 8
ValeryS, да, спасибо за замечание - пишу сонный, могу элементарное путать. Наоборот: из целочисленной функции булево значение
0
Заблокирован
31.03.2014, 10:41 9
Anton_Kretov не подскажете, как в плюсах определен тип bool?
0
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
31.03.2014, 10:59 10
IrineK, typedef int BOOL;
Но все-таки для новичка лучше писать так, чтобы ему было понятно.
0
Модератор
Эксперт по электронике
8357 / 6203 / 834
Регистрация: 14.02.2011
Сообщений: 21,562
31.03.2014, 11:33 11
Цитата Сообщение от IrineK Посмотреть сообщение
не подскажете, как в плюсах определен тип bool?
никак
это отдельный тип
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
typedef int BOOL;
BOOL с bool не путай
0
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
31.03.2014, 11:51 12
Цитата Сообщение от ValeryS Посмотреть сообщение
BOOL с bool не путай
Мне кажется, или он именно это и хотел увидеть? Вообще bool - отдельный тип, независимый от целочисленного. Но что он имел ввиду, написав это:
Цитата Сообщение от ValeryS Посмотреть сообщение
не подскажете, как в плюсах определен тип bool?
0
4197 / 1791 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
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
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 25
01.04.2014, 08:27  [ТС] 14
Ну это уж не я придумывал задачу)

Добавлено через 2 минуты
А можете написать полостью программный код?
0
4197 / 1791 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
01.04.2014, 08:28 15
А можешь поставить целиком задачу? Что задано, то я и написал и не я виноват в том, что получилось только тело функции, а не программа. Давай задание на всё, начиная с интерфейса, - можно будет написать целиком программу.
0
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
4197 / 1791 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
01.04.2014, 08:42 17
Цитата Сообщение от Abamaa Посмотреть сообщение
Вот, это все что написано.
Читай:
Цитата Сообщение от Abamaa Посмотреть сообщение
Дано натуральное число n.
, то есть оно уже введено, но в целую программу пользователю надо будет этот ввод выполнить. Как именно? Это первая проблема.
Цитата Сообщение от Abamaa Посмотреть сообщение
Определить, является ли високосным год с таким номером.
Строка, которую я дал, определяет. А дальше что с этим делать? Учесть в условии при определении того, с какого для недели начнётся следующий год? Вывести на экран? Вывести в текстовый файл? В бинарный? На каком языке? Ведь строки "Yes." и "Да." разные. На сколько развёрнуто? А может учесть при подсчёте возраста в днях? А если вывести на экран, то в окно, или в консоль? А если в окно, то в какой компонент интерфейса? А если в файл, то в какое место? И в каком коде? Это вторая проблема. Программа целиком обязана не только что то там определить, но и поддержать ввод и выполнить вывод, соответственно в завершённом ТЗ эти операции должны быть отражены в виде подзадач. А в таком виде задачу можно решать очень уж разнообразно и в рамках разных тем.
0
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
4197 / 1791 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
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
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 25
01.04.2014, 09:00  [ТС] 20
Спасибо, уже сам догадался))
Не могли бы еще с одной задачкой помочь?

 Комментарий модератора 
Одна тема - одна задача
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2014, 09:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

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

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

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


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

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

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