Как сделать чтобы 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', то выводится
- Код не содержит обработку ошибок и проверку корректности вводимых пользователем данных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д