2019-04-01 21:47:48
关于5的阶乘 任意数的阶乘
int main(){
int t;
int i;
i=1;
t=1; int n;
scanf("%d",&n);
while(i<=5){ while(i<=n)
t=t*i;
i++;
}
printf(%d",t);
return 0;
}
后续
2019-04-02 20:57:57
第二天在算法书上看到的关于函数调用的阶乘问题的算法
int fac(int n){
int p=1;
int t;
for(t=1;t<=n;t++) //t仅作为临时变量,若为5的阶乘 t=1;p=1; t=2; p=1*2=2; t=3;p=2*3=6;
p=p*t;
return (p); //一定要有返回值类型,返回p的值
}
main(){
int p; //开始写主函数时并未声明n,p; n,p只出现在分函数中,属于局部变量,不是全局变量
int n;
printf("请输入n: "); //开始错误写法,printf("%d" ); 结果出来一直有1,有了下面的输入语句,不用太输入开始的输出,逻辑混乱 !!
scanf("%d",&n);
p=fac(n); //调用函数的时候,返回值为p,所以调用一定要添加p=
printf("%d!=%d ",n,p); //最后的输入值一定要添加n,p。因为最后的输出结果为第n个数的阶乘为p;
}