使用静态变量的方法求n!
下面的程序可以输出1-5的阶乘值,如果需要把5改为n,则可求出1-n的阶乘值。
1 void main()
2 {
3 setvbuf(stdout,NULL,_IONBF,0);
4 int fac(int n);
5 int i;
6 for(i=1;i<=5;i++)
7 printf("%d!=%d\n",i,fac(i));
8 }
9
10 int fac(int n)
11 {
12 static int f=1;
13 f = f*n;
14 return f;
15 }
每次调用fac(i),输出一个i!,同时保留这个i!的值,以便下次再乘(i+1)。