как мне сохранить значение с помощью функций C

#c

#c

Вопрос:

(мне не разрешено использовать глобальные/статические переменные)у меня есть этот код:

 #include lt;stdio.hgt;   int check_menu(int menu1) {  if (menu1 gt; 3 || menu1 lt; 0)  return 1;  else  return 0; }  int menu() {  int choice, count = 0, count2;  do {  printf("----MENU----n0 -gt; Exitn1 -gt; Prime timen2 -gt; Calander calculatingn3 -gt; Matrix printingn");  scanf_s("%d", amp;choice);  count  ;  if (choice gt; 3 || choice lt; 0)  printf("%d/5 errorsn", count);  } while (check_menu(choice) == 1 amp;amp; count lt;= 4);  return choice; } int Prime_time() {  int choice = menu();  menu(); } int determine() {  int choice = menu();  if (choice == 1)  Prime_time(); } void main() {  menu();  determine(); }  

я хочу, чтобы всякий раз, когда пользователь вводит неверный выбор в функцию меню, переменная count увеличивалась на 1, и это работает нормально. дело в том, что всякий раз, когда пользователь вводит правильный ответ, ему необходимо запускать другую функцию, соответствующую его выбору, в этом случае эта функция является Prime_time, дело в том, что переменная count должна оставаться на том же значении, что и раньше(не сбрасываться до 0). я застрял на этом и был бы признателен за некоторую помощь.

Комментарии:

1. Это именно то, что static нужно… почему ты не можешь им воспользоваться?

2. это небольшая часть моего школьного задания, одно из требований — не использовать статические переменные.

3. и это также является обязательным требованием для такого поведения? Я имею в виду — вы уверены, что count это будет «сохранено» между вызовами menu ? В конце концов, это довольно странное требование

4. да, это так, как должно быть, я знаю, это странно, но это то, что нам сказали сделать

5. Очень странно… ну, вы можете определить его main и передать указатель на функцию, но …. ну, просто странное задание