Как сделать чтобы Switch работал в другом Switch'e? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Как сделать что бы Switch работал в другом Switch'e? Вот допустим выбираем один пункт и в зависимости от выбранного нами пункта последующие для других будут разными. Вот программа, скажите что исправить.
Листинг программы
  1. #include<stdio.h>
  2. #include<conio.h>
  3. int main ()
  4. {
  5. char x, y, n, q;
  6. printf("\na-test1\nb-test2\nc-test3\n");
  7. fflush(stdin);
  8. scanf("%c",&x);
  9. switch (x)
  10. {
  11. case 'a':
  12. printf("\ntest1\nviberite dalee\nw-test4\ne-test5\nr-test6\n");
  13. fflush(stdin);
  14. scanf("%f",&y);
  15. switch (y)
  16. {
  17. case 'w':
  18. printf("test4\n");
  19.  
  20. case 'e':
  21. printf("test5\n");
  22.  
  23. case 'r':
  24. printf("test6\n");
  25.  
  26. }
  27. case 'b':
  28. printf("\ntest2\nviberite dalee\nt-test7\nu-test8\ni-test9\n");
  29. fflush(stdin);
  30. scanf("%f",&n);
  31. switch (n)
  32. {
  33. case 't':
  34. printf("test7\n");
  35.  
  36. case 'u':
  37. printf("test8\n");
  38.  
  39. case 'i':
  40. printf("test9\n");
  41.  
  42. }
  43. case 'c':
  44. printf("\ntest3\nviberite dalee\no-test10\np-test11\ns-test12\n");
  45. fflush(stdin);
  46. scanf("%f",&q);
  47. switch (q)
  48. {
  49. case 'o':
  50. printf("test10\n");
  51.  
  52. case 'p':
  53. printf("test11\n");
  54.  
  55. case 's':
  56. printf("test12\n");
  57.  
  58. }
  59.  
  60. }
  61. }

Решение задачи: «Как сделать чтобы Switch работал в другом Switch'e?»

textual
Листинг программы
  1. #include<stdio.h>
  2. #include<conio.h>
  3. int main ()
  4. {
  5.     char x, y, n, q;
  6.  
  7.     printf("\na-test1\nb-test2\nc-test3\n");
  8.     fflush(stdin);
  9.     scanf("%c",&x);
  10.     switch (x)
  11.     {
  12.         case 'a':{
  13.  
  14.                 printf("\ntest1\nviberite dalee\nw-test4\ne-test5\nr-test6\n");
  15.                 fflush(stdin);
  16.                 scanf("%c",&y);
  17.                 switch (y)
  18.                 {
  19.                     case 'w':{
  20.  
  21.                             printf("test4\n");
  22.                             break;
  23.                     }
  24.  
  25.                     case 'e':{
  26.  
  27.                             printf("test5\n");
  28.                      break;
  29.                     }
  30.  
  31.  
  32.                     case 'r':{
  33.  
  34.                             printf("test6\n");
  35.                      break;
  36.                     }
  37.  
  38.                 }
  39.                 break;
  40.         }
  41.  
  42.         case 'b':{
  43.  
  44.                 printf("\ntest2\nviberite dalee\nt-test7\nu-test8\ni-test9\n");
  45.                 fflush(stdin);
  46.                 scanf("%c",&n);
  47.                 switch (n)
  48.                 {
  49.                     case 't':{
  50.  
  51.                             printf("test7\n");
  52.                             break;
  53.                     }
  54.  
  55.  
  56.                     case 'u':{
  57.  
  58.                             printf("test8\n");
  59.                             break;
  60.                 }
  61.  
  62.                     case 'i':{
  63.  
  64.                             printf("test9\n");
  65.                             break;
  66.                 }
  67.  
  68.  
  69.  
  70.  
  71.                 }
  72.                 break;
  73.         }
  74.  
  75.         case 'c':{
  76.  
  77.                 printf("\ntest3\nviberite dalee\no-test10\np-test11\ns-test12\n");
  78.                 fflush(stdin);
  79.                 scanf("%c",&q);
  80.                 switch (q)
  81.                 {
  82.                     case 'o':{
  83.  
  84.                             printf("test10\n");
  85.                             break;
  86.                     }
  87.  
  88.  
  89.                     case 'p':{
  90.  
  91.                             printf("test11\n");
  92. break;
  93.                     }
  94.  
  95.                     case 's':{
  96.  
  97.                             printf("test12\n");
  98.                             break;
  99.                     }
  100.  
  101.                 }
  102.                 break;
  103.         }
  104.  
  105.  
  106.  
  107.     }
  108. }

Объяснение кода листинга программы

  1. Вводная часть кода содержит объявление переменных x, y, n, q типа char.
  2. Затем с помощью функции printf выводится три строки для выбора: a-test1 / b-test2 / c-test3.
  3. Далее, с помощью функции scanf в переменную x считывается символ, который является меткой для вложенного оператора switch.
  4. В зависимости от значения переменной x выводится соответствующий результат:
    • Если 'a', то выводится test1, после чего считывается символ в переменную y. В зависимости от значения переменной y выводится соответствующий результат:
      • Если 'w', то выводится test4.
      • Если 'e', то выводится test5.
      • Если 'r', то выводится test6.
    • Если 'b', то выводится test2, после чего считывается символ в переменную n. В зависимости от значения переменной n выводится соответствующий результат:
      • Если 't', то выводится test7.
      • Если 'u', то выводится test8.
      • Если 'i', то выводится test9.
    • Если 'c', то выводится test3, после чего считывается символ в переменную q. В зависимости от значения переменной q выводится соответствующий результат:
      • Если 'o', то выводится test10.
      • Если 'p', то выводится test11.
      • Если 's', то выводится test12.
  5. Код не содержит обработку ошибок и проверку корректности вводимых пользователем данных.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы