Почему переменная g после switch-а становится равной нулю? - C (СИ)
Формулировка задачи:
Здравствуйте! На скрине код и тест. Не могу понять в чем проблема( код с ошибкой, с code::blocks или еще что-то), почему переменная g после функции switch становится равной нулю. Если до функции ее выводить, то все в норме. Больше переменных, либо меньше, последняя из них, которая используется в этой функции, обращается почему-то в ноль. Помогите, пожалуйста!
Решение задачи: «Почему переменная g после switch-а становится равной нулю?»
textual
Листинг программы
#include <stdio.h> #include <conio.h> void main() { int a,s,d,f,g,y; char znak; a=1; s=2; d=3; f=4; g=5; y=0; printf("%d\n",g); scanf("%s", &znak); switch (znak) { case 'z': printf("%d\n",g); break; case 'a': y=a; break; case 's': y=s; break; case 'd': y=d; break; case 'f': y=f; break; case 'g': y=g; break; default: puts("Nedopystimo"); break; } printf("y=%d\n", y); printf("a=%d s=%d d=%d f=%d g=%d", a, s, d, f, g); }
Объяснение кода листинга программы
В этом коде объявлены следующие переменные:
- a - значение 1
- s - значение 2
- d - значение 3
- f - значение 4
- g - значение 5
- 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'.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д