求教:用C语言求1到5的阶乘

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:53:58
#include<stdio.h>
void main()
{
int fac(int n);
int i;
for(i=1;i<=5;i++)
printf("%d!=%d\n",i,fac(i));
}
int fac(int n)
{
static int f=1;
f=f*n;
return(f);
}
我知道是这样编的,但我就是搞不清楚中间的意思,请各位帮帮我,特别是f=f*n中的这个n代表什么?

n是形式参数,它用来接受来自主函数的实参.也就是当函数调用的时候fac(i)中的i来替换这里的n.
当第一次调用的时候,i=1(实参)传给n(形参),n=1; f=f*n就等于1=1*1;此时f=1;当第二次调用的时候,n=2,f=f*n就是把f*n等于1*2赋给f,此时f=2,依次类推....
你能看懂吗?

参数 在主程序中循环调用
n=1,2,3,4,5
f是静态变量 值只会最会第一次调用的时候初始化

i=1 f=1*1=1

i=2 f=1*2=2

i=3 f=1*2*3=6

i=4 f=1*2*3*4=24

i=5 f=1*2*3*4*5=120

好像表示换行的意思!!!
好久没有用C了哈哈!