作业帮 > 综合 > 作业

请问如何用定义指针的方法编写任意一个数的阶乘?这个数由键盘中获取.麻烦写出示例代码.

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/23 16:41:37
请问如何用定义指针的方法编写任意一个数的阶乘?这个数由键盘中获取.麻烦写出示例代码.
请问如何用定义指针的方法编写任意一个数的阶乘?这个数由键盘中获取.麻烦写出示例代码.
要用到指针变量么?
 #include "stdio.h"
void getFact(int n,int *fact)// 函数功能是计算n的阶乘,然后存到fact指向的变量里去
{
    int i,sum=1;
    if(n==1||n==0)
        *fact=1;
    for(i=1;i<=n;i++)
         sum*=i;
    *fact=sum;
}
int main()
{
    int n,sum;
    int *p=&sum;
    scanf("%d",&n);
    getFact(n,p);
    printf("%d!=%d\n",n,*p);//这儿*p改成sum也是一样的
}
结果:

再问: 当输入的数比较大的时候得到正确的计算结果不用指针来处理?long型int double型都有范围的限制哇。怕是不够用呀。
再答: 哦,你是说要用指针数组来处理很大的数的阶乘是吧, 比如50!这个数的确太大,只能用字符数组来处理,我想想。
再问: 对,是要处理大数的阶乘。
再答: 0-99的阶乘: #include "stdio.h" #include "string.h" #include "stdlib.h" int main() { int n,i,j,k,p,t,a[50]; char str[100]; while(1) { for(i=0;i