Когда следующая функция вызывается и запускается, если начальное условие «если» выполнено, программа запускается как задумано; повторно. Если начальное условие «if» не выполнено, программа переходит к выполнению оператора else, но застревает в бесконечном цикле.
Почему?
#include <stdio.h>
#include <string.h>
int num_func();
int main()
{
num_func();
return 0;
}
int num_func()
{
int num;
char yn[1];
printf("Please enter an integer value: ");
if (scanf("%d", &num) == 1)
{
printf("The value you entered is: %d. Is this correct? ", num);
scanf("%s", &yn);
if (strcmp(yn, "y") == 0) {
printf("Great! \n");
}
else if (strcmp(yn, "n") == 0) {
printf(":( \n");
}
else {
printf("Illegal Entry. \n");
}
}
else {
printf("You were told to put in a number!");
}
num_func();
}
Мне также интересно узнать, как сделать глобальные переменные num и yn [1], чтобы num_func () мог обращаться к ним без необходимости выделять память при каждом запуске. Если бы вы могли это объяснить, я был бы признателен.