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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2013, 20:17   #1
KlIm16
Пользователь
 
Регистрация: 16.02.2013
Сообщений: 37
Восклицание Структура switch-case на С.

Помогите доработать код
Код:
void main()
{
int meny ;
printf("my\n");

switch (meny)
{
case 1:
{
clrscr();
printf("vvesti dani\n");
break;
}
case 2:
{
printf("dani dlya pereglyadu\n");
break;
}
case 3:
{
printf("poshuk po oblasti\n");
break;
}
case 4:
{
printf("vuhid\n");
break;
}
}
getch();
}

Последний раз редактировалось Stilet; 26.02.2013 в 21:26.
KlIm16 вне форума Ответить с цитированием
Старый 26.02.2013, 20:22   #2
ViRTaCe
Пользователь
 
Регистрация: 18.03.2012
Сообщений: 24
По умолчанию

А что собственно надо доработать?
ViRTaCe вне форума Ответить с цитированием
Старый 26.02.2013, 20:29   #3
KlIm16
Пользователь
 
Регистрация: 16.02.2013
Сообщений: 37
По умолчанию

что бы по нажатии на 1,2,3,4 выводилось соответствующая надпись
KlIm16 вне форума Ответить с цитированием
Старый 26.02.2013, 21:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
switch (getchar()-'0')
не?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.02.2013, 21:17   #5
KlIm16
Пользователь
 
Регистрация: 16.02.2013
Сообщений: 37
По умолчанию

Большое спасибо всё работает
KlIm16 вне форума Ответить с цитированием
Старый 07.03.2013, 22:06   #6
KlIm16
Пользователь
 
Регистрация: 16.02.2013
Сообщений: 37
Вопрос

Еще один вопрос. Как сделать чтобы можна было возратиться с саse на главное меню.
KlIm16 вне форума Ответить с цитированием
Старый 07.03.2013, 22:11   #7
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Как правило для организации меню используют бесконечный цикл
Код:
for(;;)
или
Код:
while(1)
В него помещают switch и все его содержимое.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 07.03.2013, 22:25   #8
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,312
По умолчанию

Можно так:
1. Организовать цикл типа:
Цитата:
do
...
while meny != 0;
В теле цикла - твой case.
2. Предусматриваеш в meny значение для завершения цикла

Да, незабудь вывести набор меню до начала цикла:
Типа:

Цитата:
1 - Vvesti dani 2 - Dani dlya pereglyadu 3 - Poshuk po oblasti ... 0 - Exit.

Вроде так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 07.03.2013, 22:31   #9
KlIm16
Пользователь
 
Регистрация: 16.02.2013
Сообщений: 37
По умолчанию

Так-то правильно, но мне потом нужно будет еще раз выбрать какой-то сase ,но будет бесконечно повторяться просто меню. Нужно что-бы выбрав в самом сase 1-цу, компилятор вернулся к рядку printf("my\n") и делал все сначала.

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Можно так:
1. Организовать цикл типа:

В теле цикла - твой case.
2. Предусматриваеш в meny значение для завершения цикла

Да, незабудь вывести набор меню до начала цикла:
Типа:




Вроде так ...
Сейчас попробую.

А что мне делать если я заменил switch(meny) на switch (getchar()-'0')
и рядка int meny у меня нету???

Последний раз редактировалось Stilet; 07.03.2013 в 22:49.
KlIm16 вне форума Ответить с цитированием
Старый 07.03.2013, 22:48   #10
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,312
По умолчанию

1. Выводим информацию о меню.
2. Входим в цикл и на
Код:
 ch = getchar();
ожидаем нажатия клавишы.
или switch (ch - '0')
или в case ch и в самом case пишем не 1, 2, 3 ... а '1', '2', '3' ...
3. С введенным значением попадаем в case и делаем работу
4. По break завершаем case
5. Проверяем условие while ch != '0'. Тут разветвление.
Либо завершаем работу и вываливаемся из цикла, либо переходим на п.2.


Вроде так ...

Добавлено:
ch надо описать.
int meny может и непотребоваться, см. выше
Как-то так, ...

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


Купить рекламу на форуме - 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
C++ switch case frozen__11 Общие вопросы C/C++ 6 11.11.2012 23:16
switch и case symrak Общие вопросы C/C++ 2 24.01.2012 15:17