Как сделать чтобы Switch работал в другом Switch'e? - C (СИ)
Формулировка задачи:
Как сделать что бы Switch работал в другом Switch'e? Вот допустим выбираем один пункт и в зависимости от выбранного нами пункта последующие для других будут разными. Вот программа, скажите что исправить.
Листинг программы
- #include<stdio.h>
- #include<conio.h>
- int main ()
- {
- char x, y, n, q;
- printf("\na-test1\nb-test2\nc-test3\n");
- fflush(stdin);
- scanf("%c",&x);
- switch (x)
- {
- case 'a':
- printf("\ntest1\nviberite dalee\nw-test4\ne-test5\nr-test6\n");
- fflush(stdin);
- scanf("%f",&y);
- switch (y)
- {
- case 'w':
- printf("test4\n");
- case 'e':
- printf("test5\n");
- case 'r':
- printf("test6\n");
- }
- case 'b':
- printf("\ntest2\nviberite dalee\nt-test7\nu-test8\ni-test9\n");
- fflush(stdin);
- scanf("%f",&n);
- switch (n)
- {
- case 't':
- printf("test7\n");
- case 'u':
- printf("test8\n");
- case 'i':
- printf("test9\n");
- }
- case 'c':
- printf("\ntest3\nviberite dalee\no-test10\np-test11\ns-test12\n");
- fflush(stdin);
- scanf("%f",&q);
- switch (q)
- {
- case 'o':
- printf("test10\n");
- case 'p':
- printf("test11\n");
- case 's':
- printf("test12\n");
- }
- }
- }
Решение задачи: «Как сделать чтобы Switch работал в другом Switch'e?»
textual
Листинг программы
- #include<stdio.h>
- #include<conio.h>
- int main ()
- {
- char x, y, n, q;
- printf("\na-test1\nb-test2\nc-test3\n");
- fflush(stdin);
- scanf("%c",&x);
- switch (x)
- {
- case 'a':{
- printf("\ntest1\nviberite dalee\nw-test4\ne-test5\nr-test6\n");
- fflush(stdin);
- scanf("%c",&y);
- switch (y)
- {
- case 'w':{
- printf("test4\n");
- break;
- }
- case 'e':{
- printf("test5\n");
- break;
- }
- case 'r':{
- printf("test6\n");
- break;
- }
- }
- break;
- }
- case 'b':{
- printf("\ntest2\nviberite dalee\nt-test7\nu-test8\ni-test9\n");
- fflush(stdin);
- scanf("%c",&n);
- switch (n)
- {
- case 't':{
- printf("test7\n");
- break;
- }
- case 'u':{
- printf("test8\n");
- break;
- }
- case 'i':{
- printf("test9\n");
- break;
- }
- }
- break;
- }
- case 'c':{
- printf("\ntest3\nviberite dalee\no-test10\np-test11\ns-test12\n");
- fflush(stdin);
- scanf("%c",&q);
- switch (q)
- {
- case 'o':{
- printf("test10\n");
- break;
- }
- case 'p':{
- printf("test11\n");
- break;
- }
- case 's':{
- printf("test12\n");
- break;
- }
- }
- break;
- }
- }
- }
Объяснение кода листинга программы
- Вводная часть кода содержит объявление переменных
x
,y
,n
,q
типаchar
. - Затем с помощью функции
printf
выводится три строки для выбора:a-test1
/b-test2
/c-test3
. - Далее, с помощью функции
scanf
в переменнуюx
считывается символ, который является меткой для вложенного оператора switch. - В зависимости от значения переменной
x
выводится соответствующий результат:- Если 'a', то выводится
test1
, после чего считывается символ в переменнуюy
. В зависимости от значения переменнойy
выводится соответствующий результат:- Если 'w', то выводится
test4
. - Если 'e', то выводится
test5
. - Если 'r', то выводится
test6
.
- Если 'w', то выводится
- Если 'b', то выводится
test2
, после чего считывается символ в переменнуюn
. В зависимости от значения переменнойn
выводится соответствующий результат:- Если 't', то выводится
test7
. - Если 'u', то выводится
test8
. - Если 'i', то выводится
test9
.
- Если 't', то выводится
- Если 'c', то выводится
test3
, после чего считывается символ в переменнуюq
. В зависимости от значения переменнойq
выводится соответствующий результат:- Если 'o', то выводится
test10
. - Если 'p', то выводится
test11
. - Если 's', то выводится
test12
.
- Если 'o', то выводится
- Если 'a', то выводится
- Код не содержит обработку ошибок и проверку корректности вводимых пользователем данных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д