#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
и передать указатель на функцию, но …. ну, просто странное задание