美文网首页C语言
C语言-求阶乘问题

C语言-求阶乘问题

作者: 广陵周惊蛰 | 来源:发表于2020-01-06 00:25 被阅读0次

    问题描述:求阶乘问题

    源代码:

    /*求阶乘问题*/
    
    #include <stdio.h>
    
    int factorial (int n); //函数声明 
    
    
    int main (void){
    
        int n;
    
        printf("请输入您想求阶乘的数字:"); 
        scanf ("%d",&n);
        
        printf("这个数字的阶乘为:%d\n",factorial(n));//注意这里是 “函数名(变量名)” 
        
        //丰丰提问:如果只输入“函数名”的话,printf的将是什么呢?
        
        }
    
    int factorial (int n){
    
        int i, fact = 1;
    
        for (i=1; i<=n; i++){
            fact = fact * i ;
        }
            
    
        return fact;
    }
    

    运行结果:

    求阶乘

    遇到问题:

    1、粗心失误
    main()函数中

    printf("这个数字的阶乘为:%d\n",factorial(n));
    

    注意这里是 “函数名(变量名)”

    2、值得注意
    整数变量占用四个字节的空间,所以 每个整数都有一定的取值范围,上述程序输入整数13,其结果(13!)就超出整数范围,输出错误的结果。


    超出整数范围

    3、在Dev-c 5.11中,编译不能显示变量变化的问题:


    查找变量错误

    出现原因:


    编译器没有配置到debug模式

    解决方法:


    编译器选择debug模式

    疑问:

    如果只输入“函数名”的话,printf的将是什么呢?


    printf("这个数字的阶乘为:%d\n",factorial);的结果

    程序参数:

    • 输出大小: 149.365234375 KiB
    • 编译时间: 0.28s

    相关文章

      网友评论

        本文标题:C语言-求阶乘问题

        本文链接:https://www.haomeiwen.com/subject/ydhhactx.html