Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Kwangmyongsong
0 / 0 / 2
Регистрация: 30.09.2013
Сообщений: 84
#1

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

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

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

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

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

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

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

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

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

32
Obert
13 / 13 / 2
Регистрация: 17.08.2011
Сообщений: 172
07.11.2013, 18:03 #2
Вот из моей библиотеки:

C++
1
2
    boolean LoopYear(Word Y_lp) // високосный ли год
{if (((Y_lp % 4)==0) && (((Y_lp % 100)!=0)||((Y_lp % 400)==0))) return True; else return false;}
0
Kwangmyongsong
0 / 0 / 2
Регистрация: 30.09.2013
Сообщений: 84
07.11.2013, 18:06  [ТС] #3
не) только switch использовать.
0
Kwangmyongsong
0 / 0 / 2
Регистрация: 30.09.2013
Сообщений: 84
12.11.2013, 17:21  [ТС] #4
жду ваших предложений.
0
Obert
13 / 13 / 2
Регистрация: 17.08.2011
Сообщений: 172
12.11.2013, 17:35 #5
Цитата Сообщение от Kwangmyongsong Посмотреть сообщение
не) только switch использовать.
Вы извращенец? Только свитчем - ничего не получится, какие-то другие операторы всё равно придётся использовать.
0
Kwangmyongsong
0 / 0 / 2
Регистрация: 30.09.2013
Сообщений: 84
12.11.2013, 17:37  [ТС] #6
Цитата Сообщение от Obert Посмотреть сообщение
Вы извращенец? Только свитчем - ничего не получится, какие-то другие операторы всё равно придётся использовать.
ну давайте тогда еще while )
0
Obert
13 / 13 / 2
Регистрация: 17.08.2011
Сообщений: 172
12.11.2013, 17:43 #7
Цитата Сообщение от Kwangmyongsong Посмотреть сообщение
ну давайте тогда еще while )
И ни присваивания, ни математических действий, ничего кроме указанного?

Добавлено через 2 минуты
Если только switch, то делаешь полный список с case для каждого года . Но "return" всё равно придётся использовать
0
Kwangmyongsong
0 / 0 / 2
Регистрация: 30.09.2013
Сообщений: 84
12.11.2013, 17:45  [ТС] #8
нет арифметика присваивания конешно же можно. я имел введу без циклов for и массивов. ну и всяких лишних сложностей а return нет)
0
SatanaXIII
Супер-модератор
Эксперт С++
5766 / 2764 / 374
Регистрация: 01.11.2011
Сообщений: 6,717
Завершенные тесты: 1
12.11.2013, 17:58 #9
Цитата Сообщение от Kwangmyongsong Посмотреть сообщение
только switch использовать.
Легко.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cin >> year;
switch( year )
  {
  case 0 : coun << "Високосный"; break;
  case 1 : coun << "Не високосный"; break;
  case 2 : coun << "Не високосный"; break;
  case 3 : coun << "Не високосный"; break;
  case 4 : coun << "Високосный"; break;
  case 5 : coun << "Не високосный"; break;
 
/*Sleep( СобачьяПасхаTime )*/
 
  case 3796 : coun << "Високосный"; break;
  case 3797 : coun << "Последний (если верить Ванге)"; break;
  }
Добавлено через 2 минуты
Хотя в конце там break не нужен. Там вообще в конце уже ничего не нужно будет.
2
Kwangmyongsong
0 / 0 / 2
Регистрация: 30.09.2013
Сообщений: 84
12.11.2013, 18:03  [ТС] #10
в конце понятно )) щас проверю)

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int year = 0;
cout << " enter year";
cin >> year;
switch( year )
  {
  case 0 : coun << "Високосный"; break;  //  тут ошибку выбивает Error  1   error C2065: 'coun' : undeclared identifier 
 и след coun также
  case 1 : coun << "Не високосный"; break;
  case 2 : coun << "Не високосный"; break;
  case 3 : coun << "Не високосный"; break;
  case 4 : coun << "Високосный"; break;
  case 5 : coun << "Не високосный"; break;
 
 
 
  case 3796 : coun << "Високосный"; break;
  case 3797 : coun << "Последний (если верить Ванге)"; break;
  }
0
Obert
13 / 13 / 2
Регистрация: 17.08.2011
Сообщений: 172
12.11.2013, 18:06 #11
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Легко.
C++
1
2
3
4
5
cin >> year;
switch( year )
  {
  case 0 : coun << "Високосный"; break;
...
Кстати говоря, нулевого года нет. (До первого года идёт первый до нашей эры.)
0
Kwangmyongsong
0 / 0 / 2
Регистрация: 30.09.2013
Сообщений: 84
12.11.2013, 18:11  [ТС] #12
эм.. ну дело не в этом но всеже))
0
daslex
12.11.2013, 20:46
  #13

Не по теме:

А использовать функции с return можно? (функции для проверок не рекурсивные)
С тем условием, что вообще ни одного оператора сравнения не будет.

0
iRomul
159 / 100 / 14
Регистрация: 17.10.2012
Сообщений: 483
Завершенные тесты: 1
12.11.2013, 21:06 #14
Вам всё ясно написали в ошибке. Вместо coun поставьте cout. И научитесь думать хоть немного, а не тупо копировать код и игнорировать ошибки.
1
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
12.11.2013, 21:41 #15

Не по теме:

Извращенная задача, извращенный goto )



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
#include <iostream>
#include <cmath>
 
int main()
{
 
   int y=400;
   bool OK=0;
 
   switch (y%4)
   {
       case 0:
               OK=true;
               switch (y%10+y%100)
               {
                  case 0:
                          switch (y%400)
                          {
                              case 0: goto l1;
                              default: OK=0;
                          }
                          break;
                  default: goto l1;
               }
 
       default: OK=0;
   }
 
l1:
   switch (OK)
   {
      case 0: std::cout<<"Year "<<y<<" NE wisokosniy\n"; break;  //Високосный
      case 1: std::cout<<"Year "<<y<<" Wisokosniy"; break;  //Обычный
   }
 
    return 0;
}

Не по теме:

и то же самое, но без goto, с функциями


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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <cmath>
 
 
bool check_d400(int y)
{
    switch (y%400)
    {
        case 0: return 1;
        default: return 0;
    }
}
 
bool check_d4(int y)
{
    switch (y%4)
    {
        case 0: return 1;
        default: return 0;
    }
}
 
bool check_d100(int y)
{
    switch (y%10+y%100)
    {
        case 0: return 1;
        default: return 0;
    }
}
 
int main()
{
 
   int y=17;
   bool OK=0;
 
   bool del4_ok=false;
   del4_ok = check_d4(y);
   switch (del4_ok)
   {
     case  0: OK=0; break;
     default: OK=1;
   }
 
   int del100=false;
   switch (OK)
   {
       case 1: del100=check_d100(y); break;
   }
 
   int del400;
   switch (del100)
   {
       case 0: break;
       default: del400=check_d400(y);
   }
 
   switch (del400)
   {
       case 0: OK=false; break;
   }
 
  switch (OK)
  {
      case 1: std::cout<<" wis\n"; break; //Високосный
      case 0: std::cout<<" nowis\n"; break; //обычный
  }
 
    return 0;
}
0
SatanaXIII
Супер-модератор
Эксперт С++
5766 / 2764 / 374
Регистрация: 01.11.2011
Сообщений: 6,717
Завершенные тесты: 1
13.11.2013, 08:36 #16

Не по теме:

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


Цитата Сообщение от daslex Посмотреть сообщение
извращенный goto
А кто вам сказал, что его можно использовать?
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
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
Супер-модератор
Эксперт С++
5766 / 2764 / 374
Регистрация: 01.11.2011
Сообщений: 6,717
Завершенные тесты: 1
13.11.2013, 10:36 #18
Цитата Сообщение от daslex Посмотреть сообщение
Так никто и не сказал, что нельзя.
Вот же:
Цитата Сообщение от Kwangmyongsong Посмотреть сообщение
только switch использовать
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
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 использовать. Свитч в розетку воткнул и он все сделал)
Воооот. Вы уже начинаете понимать... :D
Цитата Сообщение от daslex Посмотреть сообщение
Это ж сколько полезного времени-то убьет. И головой думать совсем не научит. факт
Мой пример еще раз посмотрите.

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

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

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

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

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


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

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

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