Почему переменная g после switch-а становится равной нулю? - C (СИ)

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

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

Здравствуйте! На скрине код и тест. Не могу понять в чем проблема( код с ошибкой, с code::blocks или еще что-то), почему переменная g после функции switch становится равной нулю. Если до функции ее выводить, то все в норме. Больше переменных, либо меньше, последняя из них, которая используется в этой функции, обращается почему-то в ноль. Помогите, пожалуйста!

Решение задачи: «Почему переменная g после switch-а становится равной нулю?»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. void main()
  5. {
  6.     int a,s,d,f,g,y;
  7.     char znak;
  8.     a=1;
  9.     s=2;
  10.     d=3;
  11.     f=4;
  12.     g=5;
  13.     y=0;
  14.     printf("%d\n",g);
  15.     scanf("%s", &znak);
  16.      switch (znak)
  17.     {
  18.         case 'z': printf("%d\n",g); break;
  19.         case 'a': y=a; break;
  20.         case 's': y=s; break;
  21.         case 'd': y=d; break;
  22.         case 'f': y=f; break;
  23.         case 'g': y=g; break;
  24.         default:
  25.          puts("Nedopystimo"); break;
  26.  
  27.     }
  28.     printf("y=%d\n", y);
  29.     printf("a=%d s=%d d=%d f=%d g=%d", a, s, d, f, g);
  30. }

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

В этом коде объявлены следующие переменные:

  1. a - значение 1
  2. s - значение 2
  3. d - значение 3
  4. f - значение 4
  5. g - значение 5
  6. y - значение 0 Затем переменная g выводится на экран. Далее пользователю предлагается ввести символ. В зависимости от введенного символа, значение переменной y меняется на значение одной из переменных a, s, d, f или g. Если введенный символ не равен 'z', 'a', 's', 'd', 'f' или 'g', то в консоль выводится сообщение Nedopystimo. После этого на экран выводится значение переменной y, а затем значения всех шести переменных a, s, d, f, g и y. Таким образом, значение переменной g после цикла switch становится равным нулю только в том случае, если введенный символ не равен 'z', 'a', 's', 'd', 'f' или 'g'.

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


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

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

12   голосов , оценка 4.083 из 5

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

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

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