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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2013, 19:21   #1
Nate 21
Новичок
Джуниор
 
Регистрация: 15.10.2013
Сообщений: 1
По умолчанию Помогите со switch-case (C++)

Помогите пожалуйста. Мне нужно решить задачу при помощи конструкции switch-case
Вот условие:
Вывести значение функции если y=2^x-x/6 в промежутках 1<=x и x<0;
y=0, при x вне промежутка.
Вот то, что я ввожу в компилятор:
Код:
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
void main ()
{
	int x;
	cout<<"1. 1<=x \n";
	cout<<"2. x<0 \n";
	cout<<"3. Jakscho ni odne ne virno \n";
	cout<<"x= ";
	cin>> x;
	switch (x) 
	{
	case 1: 
      float x, y;
		cout<<"x=";
		cin>>x;
	    y=pow(2,x)-(x/6);
		cout<<"y="<<y; 
		break;
	case 2: 
		float x, y;
		cout<<"x=";
		cin>>x;
		y=pow(2,x)-(x/6);
		cout<<"y="<<y; 
		break;
	case 3: 
	default: cout<<"y=0"; break;
	}
    getch();
}
Объясните пожалуйста в чём ошибка.

Последний раз редактировалось Stilet; 15.10.2013 в 23:53.
Nate 21 вне форума Ответить с цитированием
Старый 15.10.2013, 23:38   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,381
По умолчанию

В Вашем случае надо:
1. Принять, что при x < 0 некоторый ключ равен, скажем - 0
при 0 <= x < 1, скажем - 1
при x >= 1 - этот ключ равен 2.
2. Запросить пользователя ввести значение X.
3. Условным оператором присвоить значение ключу
Код:
if x < 0
   key = 0
else
if x < 1
   key = 1
else
   key = 2;
Далее конструкция switch-case, в которой два ключа могут быть объеденены - 0 и 2.


Так как уже поздно, то в учебники не лез. Это только общее направление.



Вроде так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 15.10.2013, 23:54   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
В Вашем случае надо:
1. Принять, что при x < 0 некоторый ключ равен, скажем - 0
при 0 <= x < 1, скажем - 1
при x >= 1 - этот ключ равен 2.
2. Запросить пользователя ввести значение X.
3. Условным оператором присвоить значение ключу
Код:
if x < 0
   key = 0
else
if x < 1
   key = 1
else
   key = 2;
Далее конструкция switch-case, в которой два ключа могут быть объеденены - 0 и 2.

Так как уже поздно, то в учебники не лез. Это только общее направление.

Вроде так, ...
Не так. День был тяжёлый, но ещё подумайте.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 16.10.2013, 05:20   #4
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Цитата:
В Вашем случае надо:
1. Принять, что при x < 0 некоторый ключ равен, скажем - 0
при 0 <= x < 1, скажем - 1
при x >= 1 - этот ключ равен 2.
2. Запросить пользователя ввести значение X.
3. Условным оператором присвоить значение ключу
Тогда весь смысл Swith теряется =) Потому что в If уже можно решить задачу)

Цитата:
Объясните пожалуйста в чём ошибка.
Ошибка в том,что вы описываете одну и туже переменную разными типами,а так делать не правильно.
Код:
int x;
float x, y;
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 16.10.2013 в 05:26.
SaLoKiN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
switch и case C++ countteran Общие вопросы C/C++ 18 06.04.2013 20:52
Перемещение из case 1 в case 2(switch(), язык Си) Павел_95 Помощь студентам 13 11.01.2013 14:18
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