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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2012, 20:36   #1
frozen__11
Новичок
Джуниор
 
Регистрация: 11.11.2012
Сообщений: 1
По умолчанию C++ switch case

Код:
#include <iostream>
#include "math.h"

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{  int x1,x2,y1,y2,y3,x3,b,a,c,q1,q2,t;
double D;
setlocale(LC_ALL,"Russian");
cout<<"введите a= ";
cin>>a;
cout<<"введите b= ";
cin>>b;
cout<<"введите c= ";
cin>>c;
cout<<"введите x1= ";
cin>>x1;
cout<<"введите x2= ";
cin>>x2;
D=b*b-4*a*c;
y3=-D/(4*a);
q1=(-b+pow(D,2))/2*a;
q2=(-b-pow(D,2))/2*a;
x3=(q1+q2)/2;
y1=(a*x1*x1)+(b*x1)+c;
y2=(a*x2*x2)+(b*x2)+c;
if(a<0,x1<x3,x2<x3) {t=1;}
else if	(a>0,x1>x3,x2>x3) {t=1;}
else if(a>0,x1<x3,x2<x3) {t=2;}
else if(a<0,x1>x3,x2>x3) {t=2;}



switch(t){

case (1):
		cout<<"Y(max) = "<<y2<<endl;
		cout<<"Y(min) = "<<y1<<endl;
		break;

case (2):
	    cout<<"Y(max) = "<<y1<<endl;
		cout<<"Y(min) = "<<y2<<endl;
		break;

	
	

	}

	

	return 0;
}

он все условия выводит по case 1

Последний раз редактировалось Stilet; 11.11.2012 в 21:41.
frozen__11 вне форума Ответить с цитированием
Старый 11.11.2012, 20:46   #2
Murashov
Форумчанин
 
Аватар для Murashov
 
Регистрация: 30.10.2012
Сообщений: 121
По умолчанию

пробуй без ()
Код:
case 1:
cout<<"Y(max) = "<<y2<<endl;
cout<<"Y(min) = "<<y1<<endl;
break;

case 2:
cout<<"Y(max) = "<<y1<<endl;
cout<<"Y(min) = "<<y2<<endl;
break;
и вообще протрасируй... или хотябы перед свитчем выведи printf("%d", t);
Murashov вне форума Ответить с цитированием
Старый 11.11.2012, 21:36   #3
Axrik
Форумчанин
 
Аватар для Axrik
 
Регистрация: 17.12.2011
Сообщений: 111
По умолчанию

Вместо скобок нужны одинарные кавычки:
Код:
switch(t)
{
 case '1':
	    cout<<"Y(max) = "<<y2<<endl;
               cout<<"Y(min) = "<<y1<<endl;
	    break;
 case '2':
	    cout<<"Y(max) = "<<y1<<endl;
	    cout<<"Y(min) = "<<y2<<endl;
	    break;
}

Последний раз редактировалось Axrik; 11.11.2012 в 21:38.
Axrik вне форума Ответить с цитированием
Старый 11.11.2012, 21:41   #4
Murashov
Форумчанин
 
Аватар для Murashov
 
Регистрация: 30.10.2012
Сообщений: 121
По умолчанию

Цитата:
Сообщение от Axrik Посмотреть сообщение
Вместо скобок нужны одинарные кавычки:
Код:
switch(t)
{
 case '1':
	    cout<<"Y(max) = "<<y2<<endl;
               cout<<"Y(min) = "<<y1<<endl;
	    break;
 case '2':
	    cout<<"Y(max) = "<<y1<<endl;
	    cout<<"Y(min) = "<<y2<<endl;
	    break;
}
зачем кавычки?? это же не char, а int.
Murashov вне форума Ответить с цитированием
Старый 11.11.2012, 21:48   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Код:
if(a<0,x1<x3,x2<x3) {t=1;}
else if	(a>0,x1>x3,x2>x3) {t=1;}
else if(a>0,x1<x3,x2<x3) {t=2;}
else if(a<0,x1>x3,x2>x3) {t=2;}
Это что? Запятая вместо И? Замените эту чудо запятую на &&
pu4koff вне форума Ответить с цитированием
Старый 11.11.2012, 21:52   #6
Axrik
Форумчанин
 
Аватар для Axrik
 
Регистрация: 17.12.2011
Сообщений: 111
По умолчанию

Цитата:
Сообщение от Murashov Посмотреть сообщение
зачем кавычки?? это же не char, а int.
А да, ошибся, спасибо за поправку
Axrik вне форума Ответить с цитированием
Старый 11.11.2012, 23:16   #7
Murashov
Форумчанин
 
Аватар для Murashov
 
Регистрация: 30.10.2012
Сообщений: 121
По умолчанию

хех.. да, запятые не заметил
Murashov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
switch и case C++ countteran Общие вопросы C/C++ 18 06.04.2013 20:52
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