大学C程序入门题关于输入输出的

问题遇到的现象和发生背景
#include<stdio.h>
#define S(x) 3<(x)<5
int n,a;
void f1(int n)
{ for(;n>=0;n--)
    {
    if (n%2!=0) continue;  
    printf("%d",n);
    }
printf("\n");
}
double f2(double x,int n)
{ if(n==1) return x;
  else return x * f2(x,n-1);
}
void main()
{  int a=9;
   printf("%d %d\n",a,S(a));
   f1(4);
   printf("%.1f\n",f2(2.0,3);
  printf("%d %d",n,S(n));
}

请问下 第四行printf输出的为什么是0,1 这个n为什么回是0 求问

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img


全局变量的n没有用到,用到的是传参n,n在f1中初值为4