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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Dragon.007
3 / 3 / 0
Регистрация: 06.04.2012
Сообщений: 29
#1

С++. switch. вводится чило Т - порядковый день в году. - C++

07.04.2012, 19:36. Просмотров 1586. Ответов 7
Метки нет (Все метки)

определить номер месяца M и дня недели D соответствующих T.
знаю как решить используя оператор if.:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
if (T<0 || T>365) cout("\nВы ввели недопустимое значение!");
 if (T>0 && T<=31) M=1;
 if (T>31 && T<=59) M=2;
 if (T>59 && T<=90) M=3;
 if (T>90 && T<=120) M=4;
 if (T>121 && T<=151) M=5;
 if (T>151 && T<=181) M=6;
 if (T>181 && T<=212) M=7;
 if (T>212 && T<=243) M=8;
 if (T>243 && T<=273) M=9;
 if (T>273 && T<=304) M=10;
 if (T>304 && T<=334) M=11;
 if (T>334 && T<=366) M=12;
а используя switch ? возможно ли указать диапазон, например:
C++ (Qt)
1
2
switch (t)
case (от 1 до 31) m=1
??
(от 1 до 31) можно ли вообще как то записать? просто отрывочек пожалуйста напишите. помогите
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2012, 19:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С++. switch. вводится чило Т - порядковый день в году. (C++):

Программа, которая бы позволяла по заданному году и порядковому номеру дня в году определять день недели - C++
Ребята, помогите доработать код=) день недели выводится не правильно, примерно после 50 года=( Вот задание: Написать программу,...

По заданному году и порядковому номеру дня в году определять день недели и месяц этого дня - C++
Задачу не можем решить 3 людьми. ______________________________ Написать программу, которая бы позволяла по заданному году и...

Вводится k-й день невисокосного года - определить, является ли этот день рабочим. - C++
Вводится k-й (1&lt;=k&lt;=365) день невисокостного года, в котором 1 января – понедельник. Определить, является ли этот день рабочим, если...

По дате определить порядковый номер дня в году - C++
По введенной дате (месяц, год, число) определить порядковый номер дня в году

Установить порядковый номер дня в году по вводимому числу и месяцу (Переписать со структурой) - C++
Программа устанавливает порядковый номер дня в году по вводимому числу и месяцу. Код программы нужно переписать со структурой! ...

Число на которое приходится день учителя в году n - C++
день учителя ежегодно отмечается в первое воскресенье октября. дано натуральное n означающее номер года. определить число на которое...

7
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
07.04.2012, 19:47 #2
Нет, в switch так делать нельзя. В вашем случае лучше думаю написать вот так:
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
if ( T < 0 || T > 365 )
      cout << ( "\nВы ввели недопустимое значение!" );
   else if ( T > 334 )
      M = 12;
   else if ( T > 304 )
      M = 11;
   else if ( T > 273 )
      M = 10;
   else if ( T > 243 )
      M = 9;
   else if ( T > 212 )
      M = 7;
   else if ( T > 181 )
      M = 6;
   else if ( T > 151 )
      M = 5;
   else if ( T > 121 )
      M = 4;
   else if ( T > 90 )
      M = 3;
   else if ( T > 59 )
      M = 2;
   else
      M = 1;
Так как возможен ранний выход из ветвления. У вас же проверяются все варианты, даже если уже верный найден.
1
Dragon.007
3 / 3 / 0
Регистрация: 06.04.2012
Сообщений: 29
07.04.2012, 19:49  [ТС] #3
Цитата Сообщение от Toshkarik Посмотреть сообщение
Нет, в switch так делать нельзя.
спасибо за код. учту.. но задача по информатике как раз используя switch.. ошибка преподавателя?
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
07.04.2012, 19:56 #4
Цитата Сообщение от Dragon.007 Посмотреть сообщение
ошибка преподавателя
Вполне возможно, так как выражение справа от оператора case должно быть константой.
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
07.04.2012, 20:22 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 switch (a)
{
case 1 ... 10:
// code
break;
 
case 11 ... 50:
// code
break;
 
case 800:
// code
break;
 
default:
// code
break;
}
Но это вроде не на всех компиляторах будет работать.

Добавлено через 6 минут
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
#include <cstdio>
int main()
{
 int T,M;
 printf("Enter day: ");
 scanf("%d",&T);
 switch (T)
 {
  case 1 ... 31: M=1; break;
  case 32 ... 59: M=2; break;
  case 60 ... 90: M=3; break;
  case 91 ... 120: M=4; break;
  case 121 ... 151: M=5; break;
  case 152 ... 181: M=6; break;
  case 182 ... 212: M=7; break;
  case 213 ... 243: M=8; break;
  case 244 ... 273: M=9; break;
  case 274 ... 304: M=10; break;
  case 305 ... 334: M=11; break;
  case 335 ... 366: M=12; break;
  default: M=0; break;
 }
 printf("Month %d",M);
 getchar();
 return 0;
}
1
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
07.04.2012, 20:24 #6
Nekto, это расширение которое не входит в стандарт, поэтому, да, работать будет не на всех компиляторах
0
Dragon.007
3 / 3 / 0
Регистрация: 06.04.2012
Сообщений: 29
07.04.2012, 20:48  [ТС] #7
Цитата Сообщение от Toshkarik Посмотреть сообщение
это расширение которое не входит в стандарт,
а вот вопрос: как подключить такое расширение?)
у меня Turbo C++ если что... просто пока о расширениях я ничего не знаю
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
07.04.2012, 21:00 #8
Dragon.007, это зависит от компилятора, у каждого свои "дополнения". Какие именно есть у вашего, должно быть написано в документации к нему.
1
07.04.2012, 21:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2012, 21:00
Привет! Вот еще темы с ответами:

Определить день Пасхи в любом произвольном году - C++
Нужно написать программу, которая сможет определить в любом произвольном году, день Пасхи. Так же посчитать сколько дней осталась к Пасхе.

День недели, switch - C++
Ребята прошу помощи, морально нету сил... Задача по введенному месяцу и дню( month day) вычислить день недели, если год начинается с...

Вводится номер месяца М и дня Д. Определить день недели с датой М и Д - C++
Вводится номер месяца М и дня Д. Определить день недели с датой М и Д, считая, что год начинается с понедельника. Заранее благодарю за...

считая что год не высокосный и известен день, на который приходится 1 января, подсчитать количество понедельников в году приходящихся на 13-е число - C++
считая что год не высокосный и известен день, на который приходится 1 января, подсчитать количество понедельников в году приходящихся на...


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

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

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