zwc112233 2022-08-18 16:27 采纳率: 100%
浏览 59
已结题

关于#C语言#的问题,如何解决?

                        ****关于C语言阶乘问题

以下的C程序中,最终得出的值是多少?

  1 #include "stdio.h"
  2
  3 int f(int n);
  4
  5 int main()
  6 {
  7       int a=0;
  8       a=f(4);
  9       printf("the sum n is : %d\n",a);
 10       return 0;
 11 }
 12
 13 int f(int n)
 14 {
 15      printf("this n is : %d\n",n);
 16      if(n>0) return n+f(n-1);
 17      if(n=0) return 0;
 18 }

如果,删除第15条程序“ printf("this n is : %d\n",n);”之后,最终得出的值又是多少?为什么?

  • 写回答

7条回答 默认 最新

  • 快乐鹦鹉 2022-08-18 16:31
    关注

    if(n=0) return 0;
    这里应该是if(n==0)
    代码都错了
    这个递归就是计算1到n的总和(删除掉15行输出 the sum n is : 10)
    保留15行,则分别输出
    this n is : 4
    this n is : 3
    this n is : 2
    this n is : 1
    this n is : 0
    the sum n is : 10

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

报告相同问题?

问题事件

  • 系统已结题 8月26日
  • 已采纳回答 8月18日
  • 创建了问题 8月18日