二月山水贵不贵 2022-11-28 17:52 采纳率: 95%
浏览 19
已结题

想问一下这个有什么问题吗,输出结果不对

img


想问一下这个有什么问题吗,想求和的阶层,但是一直求得不是正确得数,应该怎么改呢,在尽量不改源代码的前提下?

  • 写回答

2条回答 默认 最新

  • 千册 Linux领域新星创作者 2022-11-28 19:46
    关注

    这代码,我改了好几版:主体没变,主要是加了打印信息,把int都改成long long了。其实并没有看出你的代码有问题,最后还用计算其计算了15的阶乘。我猜有问题的会不会是你的printf语句啊?写的不是%lld,而是%d?

    
    #include <stdio.h>
    #include <stdio.h>
    
    #define _DEBUG_
    #ifdef _DEBUG_
    #define DEBUG_INFO(format,...)  printf("%s:%d : "format"\n",__func__,__LINE__,##__VA_ARGS__)
    #else
    #define DEBUG_INFO(format,...)
    #endif
    
    long long myfun1(long long n)
    {
        long long p = 1;
        long long i;
        for(i = 1;i <= n;i++){
            p = p * i;
        }
        DEBUG_INFO("n = %lld jiecheng_%lld = %lld\n",n,n,p);
        return p;
    }
    long long myfun2(long long n)
    {
        long long p = 0, i;
        for(i = 1;i <= n;i++){
            p = p + i;
        }
        DEBUG_INFO("n =%lld sum_%lld  = %lld",n,n,p);
        return myfun1(p);
    }
    int main()
    {
        long long i = 0;
        long long sum = 0;
        DEBUG_INFO("sum = %d %lu",5,sizeof(long long));
        for(i = 2;i <= 5; i++ ){
            sum = sum + myfun2(i);
        }
    
        DEBUG_INFO("sum = %lld",sum);
        return 0;
    }
    
    
    

    执行结果

    csdn@ubuntu:~/git_learn/git_learn$ ./a.out
    main:34 : sum = 5 8
    myfun2:27 : n =2 sum_2  = 3
    myfun1:18 : n = 3 jiecheng_3 = 6
    
    myfun2:27 : n =3 sum_3  = 6
    myfun1:18 : n = 6 jiecheng_6 = 720
    
    myfun2:27 : n =4 sum_4  = 10
    myfun1:18 : n = 10 jiecheng_10 = 3628800
    
    main:39 : sum = 3629526
    csdn@ubuntu:~/git_learn/git_learn$ gcc main.c
    csdn@ubuntu:~/git_learn/git_learn$ ./a.out
    main:34 : sum = 5 8
    myfun2:27 : n =2 sum_2  = 3
    myfun1:18 : n = 3 jiecheng_3 = 6
    
    myfun2:27 : n =3 sum_3  = 6
    myfun1:18 : n = 6 jiecheng_6 = 720
    
    myfun2:27 : n =4 sum_4  = 10
    myfun1:18 : n = 10 jiecheng_10 = 3628800
    
    myfun2:27 : n =5 sum_5  = 15
    myfun1:18 : n = 15 jiecheng_15 = 1307674368000
    
    main:39 : sum = 1307677997526
    csdn@ubuntu:~/git_learn/git_learn$
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月7日
  • 已采纳回答 11月29日
  • 创建了问题 11月28日

悬赏问题

  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集
  • ¥15 在启动roslaunch时出现如下问题
  • ¥15 汇编语言实现加减法计算器的功能
  • ¥20 关于多单片机模块化的一些问题
  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取