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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Kwangmyongsong
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 84
07.11.2013, 17:46     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #1
Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным (кратен 4, если заканчивается на 00, то еще кратен 400) и выводит результат в консоль
используя только switch, оперы сравнения, без циклов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2013, 17:46     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным
Посмотрите здесь:

C++ 7. Написать программу, которая предлагает пользователю ввести массу в тоннах (дробное число) и выводит по отдельности количество тонн, килограммов и г
Написать программу, которая предлагает пользователю ввести целое число, определяет его четность и выводит результат в консоль C++
C++ Написать программу, которая предлагает пользователю ввести часы и минуты и выводит в консоль соответствующее введенному времени приветствие
Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным (кратен 4, если заканчивается на 00, то еще кр C++
Написать программу, которая предлагает пользователю ввести число и выводит в консоль его справа налево, то есть перевернув C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Obert
11 / 11 / 0
Регистрация: 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;}
Kwangmyongsong
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 84
07.11.2013, 18:06  [ТС]     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #3
не) только switch использовать.
Kwangmyongsong
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 84
12.11.2013, 17:21  [ТС]     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #4
жду ваших предложений.
Obert
11 / 11 / 0
Регистрация: 17.08.2011
Сообщений: 172
12.11.2013, 17:35     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #5
Цитата Сообщение от Kwangmyongsong Посмотреть сообщение
не) только switch использовать.
Вы извращенец? Только свитчем - ничего не получится, какие-то другие операторы всё равно придётся использовать.
Kwangmyongsong
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 84
12.11.2013, 17:37  [ТС]     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #6
Цитата Сообщение от Obert Посмотреть сообщение
Вы извращенец? Только свитчем - ничего не получится, какие-то другие операторы всё равно придётся использовать.
ну давайте тогда еще while )
Obert
11 / 11 / 0
Регистрация: 17.08.2011
Сообщений: 172
12.11.2013, 17:43     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #7
Цитата Сообщение от Kwangmyongsong Посмотреть сообщение
ну давайте тогда еще while )
И ни присваивания, ни математических действий, ничего кроме указанного?

Добавлено через 2 минуты
Если только switch, то делаешь полный список с case для каждого года . Но "return" всё равно придётся использовать
Kwangmyongsong
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 84
12.11.2013, 17:45  [ТС]     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #8
нет арифметика присваивания конешно же можно. я имел введу без циклов for и массивов. ну и всяких лишних сложностей а return нет)
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 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 не нужен. Там вообще в конце уже ничего не нужно будет.
Kwangmyongsong
0 / 0 / 0
Регистрация: 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;
  }
Obert
11 / 11 / 0
Регистрация: 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;
...
Кстати говоря, нулевого года нет. (До первого года идёт первый до нашей эры.)
Kwangmyongsong
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 84
12.11.2013, 18:11  [ТС]     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #12
эм.. ну дело не в этом но всеже))
daslex
12.11.2013, 20:46
  #13

Не по теме:

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

iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
12.11.2013, 21:06     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #14
Вам всё ясно написали в ошибке. Вместо coun поставьте cout. И научитесь думать хоть немного, а не тупо копировать код и игнорировать ошибки.
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
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;
}
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
13.11.2013, 08:36     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #16

Не по теме:

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


Цитата Сообщение от daslex Посмотреть сообщение
извращенный goto
А кто вам сказал, что его можно использовать?
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
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;
}
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
13.11.2013, 10:36     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным #18
Цитата Сообщение от daslex Посмотреть сообщение
Так никто и не сказал, что нельзя.
Вот же:
Цитата Сообщение от Kwangmyongsong Посмотреть сообщение
только switch использовать
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
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 С десяток тысяч значений:  тра та та
=======================
Это ж сколько полезного времени-то убьет. И головой думать совсем не научит. факт

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 11:47     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
SatanaXIII
13.11.2013, 11:47     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным
  #20

Не по теме:

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

Yandex
Объявления
13.11.2013, 11:47     Написать программу, которая предлагает пользователю ввести год, проверяет, является ли он високосным
Ответ Создать тему
Опции темы

Текущее время: 05:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru