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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2009, 13:50   #1
ProgramerBeatz
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 15
По умолчанию Задача на switch

Задача:
Напишите программу, реализующую популярную телевизионную игру "Кто хочет стать миллионером".
Начал составлять первый вопрос, вот код:
Код:
#include <iostream>
using namespace std;
void main()
{

int mecyac;
cout<<"Skolko mesjacev v godu?\n";
cout<<"Varianti otveta:\n";
cout<<"a) 11\n b) 15\n v) 4\n g) 12\n";
cin>>mecyac;
switch (mecyac){
	case '11':
		cout<<"neverno";
		break;
	case '15':
			cout<<"neverno";
			break;
	case '4':
				cout<<"neverno";
				break;
	case '12':
					cout<<"verno!!!";
					break;
	default:
		cout<<"net otveta\n";
		break;
				
}


}
Компилируется без ошибок... Запускаю программу и при вводе ответа (cin>>mecyac) чтобы я не ввёл даже првильный ответ не пишет "neverno" или "verno!!!" , а "net otveta" Вот два скрина:

Что не так? прошу помощи, заранее спс

Модератор: тег CODE
Изображения
Тип файла: jpg форум.jpg (16.4 Кб, 130 просмотров)
Тип файла: jpg форум 2.jpg (16.6 Кб, 124 просмотров)
ProgramerBeatz вне форума Ответить с цитированием
Старый 11.06.2009, 13:55   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Что, действительно компилится? И прямо так никаких warning'ов не показывает?
Код:
case '11':
как вы думаете, какое число здесь будет?

Может, вот так все-таки?
Код:
char mecyac;
cout<<"Skolko mesjacev v godu?\n";
cout<<"Varianti otveta:\n";
cout<<"a) 11\n b) 15\n v) 4\n g) 12\n";
cin>>mecyac;
switch (mecyac){
	case 'a':
		cout<<"neverno";
		break;
	case 'b':
			cout<<"neverno";
			break;
	case 'c':
				cout<<"neverno";
				break;
	case 'd':
					cout<<"verno!!!";
					break;
	default:
		cout<<"net otveta\n";
		break;

}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 11.06.2009, 17:01   #3
ProgramerBeatz
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 15
По умолчанию

Спс, помогло, но возникла ещё проблемка...
Вот код с первым и вторым вопросом:
Код:
#include <iostream>
using namespace std;
void main()
{
char mecyac, cm;
cout<<"Dobro pozhalovatj v igru \"Kto gochet statj milionerom?\\\n";
cout<<"pervij vopros na 500 griven:\n";
cout<<"Skolko mesjacev v godu?\n";
cout<<"Varianti otveta:\n";
cout<<"a-11\n b-15\n c-4\n d-12\n";
cin>>mecyac;
switch (mecyac){
	case 'a':
		cout<<"neverno, konec igri\n";
		break;
	case 'b':
			cout<<"neverno, konec igri\n";
			break;
	case 'c':
				cout<<"neverno, konec igri\n";
				break;
	case 'd':
					cout<<"verno vi vigrali 500 Griven!!!\n";
					break;
	default:
		cout<<"net otveta\n";
		break;
}
cout<<"\n";
cout<<"vtoroj vopros na 1000\n";
cout<<"Skojko cm v metre?\n";
cout<<"Varianti otveta:\n";
cout<<"a-34\n b-100\n c-99\n d-101\n";
cin>>cm;
switch (cm){
	case 'a':
		cout<<"neverno, konec igri\n";
		break;
	case 'b':
		cout<<"Verno vi vigrali 1000 griven\n";
		break;
	case 'c':
		cout<<"neverno, konec igri\n";
		break;
	case 'd':
		cout<<"neverno, konec igri\n";
		break;
	default:
		cout<<"net otveta\n";
		break;
}
}
При неправильном ответе на первый вопрос, программа продолжает выполнение. Как её остановить при неправильном вопросе?
скрин:
спс заранее

Модератор: тег CODE!
Изображения
Тип файла: jpg форум 3.jpg (22.0 Кб, 129 просмотров)

Последний раз редактировалось Sazary; 11.06.2009 в 17:14.
ProgramerBeatz вне форума Ответить с цитированием
Старый 11.06.2009, 17:06   #4
Tiro
 
Аватар для Tiro
 
Регистрация: 10.06.2009
Сообщений: 6
По умолчанию

Попробуй в case числа без кавычек...

Код:
...
switch (mecyac){
	case 11:
		cout<<"neverno";
		break;
...
Tiro вне форума Ответить с цитированием
Старый 11.06.2009, 17:14   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Сообщение от Tiro Посмотреть сообщение
Попробуй в case числа без кавычек...

Код:
...
switch (mecyac){
	case 11:
		cout<<"neverno";
		break;
...
число без кавычек это код какой-то клавиши
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 11.06.2009, 17:15   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от ProgramerBeatz
Как её остановить при неправильном вопросе?
Может, при неправильном ответе? )
При неверном ответе выходите из функции:
Код:
return;

Цитата:
Сообщение от Hacker19_90
число без кавычек это код какой-то клавиши
При чем тут код клавиши? Между прочим, 11 - код служебного символа.
А ТС нужно не это.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 11.06.2009, 18:41   #7
Tiro
 
Аватар для Tiro
 
Регистрация: 10.06.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
число без кавычек это код какой-то клавиши
Разве?
Код:
...
int mecyac;
...
switch (mecyac){
	case '11':
...
переменная "mecyac" типа int. То есть в switch(mesyac) в case'ах должны быть тоже целые числа... и 11 (без кавычек) как раз и воспринимается как целое число... а с кавычками - как служебный символ... Потому в оригинальном коде как раз и выдавало dafault-вариант...

З.Ы. С кавычками у меня кстати были warning'и...
Tiro вне форума Ответить с цитированием
Старый 11.06.2009, 21:55   #8
ProgramerBeatz
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 15
По умолчанию

Спс за помощ, работает)
Очень полезный форум!
ProgramerBeatz вне форума Ответить с цитированием
Старый 24.01.2011, 22:40   #9
Lordis
 
Аватар для Lordis
 
Регистрация: 24.01.2011
Сообщений: 4
По умолчанию

#include <iostream>

using namespace std;

void main(){
setlocale(LC_ALL,"Rus");

char minut,dney,god;

cout<<"\t\tДобро пожадовать в игру \"Кто хочет стать миллионером?\"\n\n\n";


cout<<"\aПервый вопрос на 100 гривен:\n\n";

cout<<"\t\tВ каком году была основана компьютерная академия \"ШАГ\"?\n"; //Вопрос

cout<<"Варианты ответа:\n\n";

cout<<" a - 1985\n b - 1993\n c - 1999\n d - 2010\n\n";

cin>>god;

switch (god){
case 'a':
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
return;
case 'b':
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
return;
case 'c':
cout<<"\n\nПравильно!!!\n\n Вы выиграли 100 гривен!\n\n\n\n\n";
break;
case 'd':
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
default:
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
return;
}




cout<<"\aВторой вопрос на 500 гривен:\n\n";

cout<<"\t\tСколько филиалов в нашей академии?\n"; //Вопрос

cout<<"Варианты ответа:\n\n";

cout<<" a - 12\n b - 24\n c - 32\n d - Один\n\n";

cin>>dney;
switch (dney){
case 'a':
cout<<"\n\nПравильно!!!\n\n Вы выиграли 500 гривен!\n\n\n\n\n";
break;
case 'b':
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
return;
case 'c':
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
return;
case 'd':
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
return;
default:
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
return;
}



cout<<"\aТретий вопрос на 1000 гривен:\n\n";

cout<<"\t\tСколько минут в дне?\n"; //Вопрос

cout<<"Варианты ответа:\n\n";

cout<<" a - 24\n b - 60\n c - 720\n d - 1440\n\n";

cin>>minut;

switch (minut){
case 'a':
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
return;
case 'b':
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
return;
case 'c':
cout<<"\a\n\nПравильно!!!\n\n Вы выиграли 1000 гривен!\n\n\n\n Вы нас рaзорили! =(\nБольше вопросов нет!!!\n\n\n\n\n";
break;
case 'd':
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
default:
cout<<"\a\a\a\n\nНеверно! Игра закончена!\n\n";
return;
}
cout<<"\t\t\t\t\t\"Programmer is Sergey Kraevskiy\"\n\n";

}
Lordis вне форума Ответить с цитированием
Старый 24.01.2011, 22:41   #10
Lordis
 
Аватар для Lordis
 
Регистрация: 24.01.2011
Сообщений: 4
По умолчанию

00000000000

Последний раз редактировалось Lordis; 24.01.2011 в 22:52.
Lordis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача с помощью функции switch по C++ Many man Помощь студентам 9 02.09.2017 10:35
SWITCH 8 портовый SKS Компьютерное железо 3 29.01.2009 03:39
Неправильная работа switch в while konstantinopol Общие вопросы C/C++ 3 24.01.2009 03:51
Оператор switch. IgorArhangel Помощь студентам 4 16.01.2009 01:53
Switch Division Общие вопросы C/C++ 3 11.01.2009 23:52