С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Kwangmyongsong
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 84
#1

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

07.11.2013, 17:46. Просмотров 1681. Ответов 32
Метки нет (Все метки)

Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным (кратен 4, если заканчивается на 00, то еще кратен 400) и выводит результат в консоль
используя только switch, оперы сравнения, без циклов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2013, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным (C++):

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

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

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

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

Написать программу, которая предлагает пользователю ввести радиус окружности и считает площадь этой окружнос - C++
Написать программу, которая предлагает пользователю ввести радиус окружности и считает площадь этой окружности. Число Pi задать в...

Написать программу, которая предлагает пользователю ввести часы и минуты и выводит в консоль соответствующее введенному времени приветствие - C++
Доброго времени суток тут вот такое задание помогите решить пожалуйста! Написать программу, которая предлагает пользователю ввести...

32
SatanaXIII
Супер-модератор
Эксперт С++
5643 / 2678 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
13.11.2013, 08:36 #16

Не по теме:

Цитата Сообщение от iRomul Посмотреть сообщение
Вместо coun поставьте cout
Да. От руки писал.


Цитата Сообщение от daslex Посмотреть сообщение
извращенный goto
А кто вам сказал, что его можно использовать?
0
daslex
1286 / 530 / 109
Регистрация: 02.08.2011
Сообщений: 2,750
13.11.2013, 10:29 #17
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А кто вам сказал, что его можно использовать?
Так никто и не сказал, что нельзя.


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
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <cmath>
 
int main()
{
 
   int y=800;
   bool OK=0;
 
   switch (y%4)
   {
       case 0:
               OK=true;
               switch (y%10+y%100)
               {
                  case 0:
                          switch (y%400)
                          {
                              case 0: switch (OK)
                                {
                                    case 0: std::cout<<"Year "<<y<<" NE wisokosniy\n"; return 0;  //Високосный
                                    case 1: std::cout<<"Year "<<y<<" Wisokosniy"; return 0;  //Обычный
                                };
                              default: OK=0;
                          }
                          break;
               }
   }
 
 
   switch (OK)
   {
      case 0: std::cout<<"Year "<<y<<" NE wisokosniy\n"; break;  //Високосный
      case 1: std::cout<<"Year "<<y<<" Wisokosniy"; break;  //Обычный
   }
 
    return 0;
}
0
SatanaXIII
Супер-модератор
Эксперт С++
5643 / 2678 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
13.11.2013, 10:36 #18
Цитата Сообщение от daslex Посмотреть сообщение
Так никто и не сказал, что нельзя.
Вот же:
Цитата Сообщение от Kwangmyongsong Посмотреть сообщение
только switch использовать
0
daslex
1286 / 530 / 109
Регистрация: 02.08.2011
Сообщений: 2,750
13.11.2013, 11:09 #19
Суть задания в том. чтобы избежать сравнений и циклов. Я так понял. Похожий вопрос встречал.
А пока ТС не скажет подходит ли ему так, то любые споры не имеют смысла.


Я не исключаю, что ТС неправильно поставил вопрос, ибо даже изначально у него написано с ошибкой, что
используя только switch, оперы сравнения,
а потом еще и
Цитата Сообщение от Kwangmyongsong Посмотреть сообщение
ну давайте тогда еще while )
а потом и cout с coun не видит проблемы. Т.е. буквально только сел.
вот и всё.

Не по теме:

А так давайте не будем вообще ничего использовать. Ни main, ни return, не IDE, ни компа. Сказано, же один switch использовать. Свитч в розетку воткнул и он все сделал)


=======================

Добавлено через 8 минут
хотя если уж и к return придирки будут. Типа только 1 раз, то всё равно можно.

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <cmath>
 
int main()
{
 
   int y=4;
   bool OK=0;
   bool F=0;
 
   switch (y%4)
   {
       case 0:
               OK=true;
               switch (y%10+y%100)
               {
                  case 0:
                          switch (y%400)
                          {
                              case 0: switch (OK)
                                {
                                    case 0: std::cout<<"Year "<<y<<" NE wisokosniy\n"; F=1; break;  //Високосный
                                    case 1: std::cout<<"Year "<<y<<" Wisokosniy"; F=1; break;  //Обычный
                                };
                              default:
                                {
                                    switch (F)
                                    {
                                        case 1: break;
                                        default: OK=0;
                                    }
                                };
                          }
               }
   }
 
switch (F)
{
    case 0:
   switch (OK)
   {
      case 0: std::cout<<"Year "<<y<<" NE wisokosniy\n"; break;  //Високосный
      case 1: std::cout<<"Year "<<y<<" Wisokosniy"; break;  //Обычный
   } break;
   case 1: ;
}
    return 0;
}
только это уже не отвечает требованию хочу, чтоб всё слишком просто было) (для совсем новичка)
Хотя условию только switch и арифм. операции по моей логике должно хорошо подходить.

Добавлено через 12 минут

Не по теме:

=======================

C++
1
2
3
 case 1 : cout<<"тра та та"
.....
 case С десяток тысяч значений:  тра та та
=======================
Это ж сколько полезного времени-то убьет. И головой думать совсем не научит. факт

0
SatanaXIII
13.11.2013, 11:47
  #20

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
А так давайте не будем вообще ничего использовать. Ни main, ни return, не IDE, ни компа. Сказано, же один switch использовать. Свитч в розетку воткнул и он все сделал)
Воооот. Вы уже начинаете понимать...
Цитата Сообщение от daslex Посмотреть сообщение
Это ж сколько полезного времени-то убьет. И головой думать совсем не научит. факт
Мой пример еще раз посмотрите.

0
daslex
13.11.2013, 13:11
  #21

Не по теме:

Честно скажу. Я не понимаю чему научит ваш пример. Это от HelloWorld ничем не отличается.
Ваш пример - Демо версия программы). Работает правильно, но местами заблочен.

0
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 799
Записей в блоге: 10
13.11.2013, 13:27 #22
Думаю надо использовать признаки делимости на четыре

Признак делимости чисел на 4:

На 4 делятся все натуральные числа, две последние цифры которых составляют нули или число, кратное 4. Например:
124 (24 : 4 = 6);
103 456 (56 : 4 = 14).


Добавлено через 8 минут
Или как нибудь работая с битовым представлением ))
0
daslex
1286 / 530 / 109
Регистрация: 02.08.2011
Сообщений: 2,750
13.11.2013, 13:33 #23
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Мой пример еще раз посмотрите.
Даже если всмотреться в ваш пример, то почему вы показываете, то, что как минимум в 4 раза больше времени займет чем может быть на самом деле нужно?

я о том, что
C++
1
2
3
4
5
6
case 4: cout<<"Високосный"; break;
case 8: cout<<"Високосный"; break;
case 12: cout<<"Високосный"; break;
/*10 лет упорного труда*/
case N:  //где N делится на 4
default: cout<<"Не високосний";
ведь это и проще и быстрее.
0
SatanaXIII
Супер-модератор
Эксперт С++
5643 / 2678 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
13.11.2013, 13:39 #24
Цитата Сообщение от daslex Посмотреть сообщение
ведь это и проще и быстрее
и не учитывает три четверти вариантов.

И кстати
Цитата Сообщение от daslex Посмотреть сообщение
вы показываете
Цитата Сообщение от SatanaXIII Посмотреть сообщение
СобачьяПасха
Цитата Сообщение от daslex Посмотреть сообщение
в 4 раза больше времени
Цитата Сообщение от daslex Посмотреть сообщение
10 лет упорного труда
Следовательно собачья пасха наступит через сорок лет?
0
daslex
1286 / 530 / 109
Регистрация: 02.08.2011
Сообщений: 2,750
13.11.2013, 13:39 #25
Да или даже так еще проще, наверное
C++
1
2
 case 4 : case 8: case 12: case 16: cout << "OK"; break;  //Все високосние сюда. Десятки тысяч значений
  default: cout<<"NO"; //то, что не високосное, то не вискокосное.
0
SatanaXIII
Супер-модератор
Эксперт С++
5643 / 2678 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
13.11.2013, 13:41 #26
daslex, хотя да, последние два ваши примера лучше моего.
0
Obert
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
13.11.2013, 21:22 #27
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А кто вам сказал, что его можно использовать?
"Cout", кстати, тоже нельзя
0
SatanaXIII
Супер-модератор
Эксперт С++
5643 / 2678 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
14.11.2013, 08:54 #28
Obert,
Цитата Сообщение от Kwangmyongsong Посмотреть сообщение
и выводит результат в консоль
0
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
14.11.2013, 09:12 #29
Условный оператор if тоже нельзя?
0
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
14.11.2013, 09:35 #30
Программисты мы, или где? Странно, что ещё никто не додумался до этого.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    ofstream fs("prog.cpp");
 
    fs << "bool func()" << endl
    << "{" << endl
    << "\tint year;" << endl
    << "\tcout << \"Введите год: \";" << endl
    << "\tcin >> year;" << endl
    << "\tswitch(year)" << endl
    << "\t{" << endl << "\t\t";
 
    for(int k = 4; k <= 2500; k+=4)
    {
        fs << "case " << k << ": ";
    }
 
    fs << "cout << \"OK\"; return true;\n\t\tdefault: cout<<\"NO\"; return false;\n\t}\n}";
    fs.close();

Не по теме:

Нагло украл основу кода у кого-то выше

0
14.11.2013, 09:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2013, 09:35
Привет! Вот еще темы с ответами:

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

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

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

Написать программу, которая предлагает пользователю ввести число, вычисляет его разрядность и сумму всех цифр и выводить результаты в консоль - C++
Help! Написать программу, которая предлагает пользователю ввести число, вычисляет его разрядность и сумму всех цифр и выводить...


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

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

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