Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2012, 10:06   #1
the dark
Новичок
Джуниор
 
Регистрация: 15.11.2012
Сообщений: 2
По умолчанию Задача на языке С (switch ... case)

помогите пожалуйста решить задачу с помощью конструкции switch ... case
Изображения
Тип файла: png switch case.png (14.7 Кб, 47 просмотров)

Последний раз редактировалось the dark; 15.11.2012 в 10:29.
the dark вне форума Ответить с цитированием
Старый 15.11.2012, 10:25   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

(Кто такие задания даёт?)
Код:
int switchVar;
if(x>=2*a) switchVar = 1;
else if(b<=x && x<a) switchVar = 2;
else switchVar = 3;
switch(switchVar){
  //...
}
Но удаление миндалин через задний проход, по сравнению с этим - верх изящества.
Abstraction вне форума Ответить с цитированием
Старый 15.11.2012, 10:35   #3
the dark
Новичок
Джуниор
 
Регистрация: 15.11.2012
Сообщений: 2
По умолчанию

Спасибо, мне нужно сделать программу не используя if, else, а используя switch ... case.
с if else я сделал программу а вот с swith ... case не получается, точнее програма работает некорректно ...
the dark вне форума Ответить с цитированием
Старый 15.11.2012, 11:10   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Спасибо, мне нужно сделать программу не используя if, else, а используя switch ... case.
Чисто теоретически, может сработать что-то вроде этого:
Код:
int sign(double a){
  long long int s = reinterpret_cast<long long int>(a)&(((long long int)1)<<(sizeof(double)*8-1));
  return 1-(s>>(sizeof(double)*8-2));
}

//...
switch(sign(x-2*a)){
  case 1: //x>=2a
    //...
  case -1: //else
    switch(sign(x-a)){
      case 1: //x>=a
        //...
      case -1: //x<a
        switch(sign(x-b)){
          case 1: //x>=b
            //...
//.......
        }
    }
}
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ switch case frozen__11 Общие вопросы C/C++ 6 11.11.2012 23:16
switch и case symrak Общие вопросы C/C++ 2 24.01.2012 15:17
switch case и if -=Andriushka=- Помощь студентам 1 19.04.2011 21:45
switch - case 1 to 5 boris-blade Общие вопросы .NET 1 12.03.2010 07:13