Когда вы указали 3
в качестве входных данных, условие if
будет истинным, и main()
будет вызвано во второй раз.
Затем вы дали четное число в качестве входных данных, и в этом случае потокэлемент управления не войдет в тело if
, а просто напечатает сообщение «EVEN NUMBER ENTERED», и программа управления выйдет из 2-го main()
.
Теперь элемент управления возвращается к тому месту, где main()
был вызван рекурсивно и выполняет то, что осталось от первого main()
вызова, который оказывается тем же сообщением "EVEN NUMBER ENTERED".
См. это о создании main()
рекурсивного,Рекурсивный main()
не считается хорошим.
Подумайте о создании другой функции и вызове ее из main()
, например
int fn()
{
int num;
printf("Enter an EVEN Number: ");
scanf("%d",&num);
if (num%2!=0)
{
printf("WRONG INPUT\n\n");
return fn();
}
printf("EVEN NUMBER ENTERED\n");
}
Или используйте else
, как вы делали вначале.