0x10:里面?外面!

作业要求:计算1!+…+n!的值

先放上一张成功的截图:

再放下代码:

#include <stdio.h>

//计算1!+…+n!的值

int Fact(int n)

{

    int f;

    if(n<0)

        printf("error!You should input n>=0");//异常处理

    else if(n==1||n==0)//这里只是因为n=1时fact(0)可能会出现问题才写了这么一句。

    {

        return 1;

    }

    else

    {

        f=Fact(n-1)*n;

        return f;

    }

        /*




个人理解:f保存,其实就是10*9*8

*/

}

int main()

{

    int a;

    int i;

    int sum=0;




    printf("Input value of n\n");

    scanf("%d",&a);

    for(i=a;i>=1;i=i-1)

    {

        int c;

        c=Fact(i);//传进来一个a=10 i=10 对I=10阶乘 之后继续循环 对i=9阶乘 直到i=1为止。

        sum+=c;










    }

printf("sum%d",sum);

}

这代码只是对上个代码修改了几下

其中做的时候出现问题的地方在这里:

Sum一开始我定义在循环体内,打印也打印在循环体里,就出现了

Sum:120

这样的感觉..
于是想起来或许是打印的问题,但当我打印在外面的时候,提示我sum没定义?

突然想起来sum定义的地方有问题

直接把sum定义在外面并且一定要定义sum=0(不然会出现些奇奇怪怪的数据)

之后按照构思再写了一下,完成。

总的来说还是一开始逻辑出现点小问题,调试一下就完事了。

Tips:鼠标经过代码时会出现工具栏,工具栏上方有一键复制代码的功能哦~天云网络培训,专注于网络空间安全相关培训,并提供相关课程的在线培训 报名微信 tyedu1
天云网络培训 » 0x10:里面?外面!

提供专业、易懂、平民化教育。让每个热爱网络的人有个归宿

立即查看 了解详情