学好编程! 2021-07-28 13:43 采纳率: 96.8%
浏览 275
已结题

求解详细过程 还有printf(“%d!=%ld\n”,i,Func(i));里面是什么意思啊

结果为1!=1
2!=2
3!=6
4!=24
5!=120

运行时,输入5

#include "stdio.h"
long Func(int n);
int main()

int i, n;

long result;

printf("Inputn: ");

scanf("%d", &n);

for(i=1;i<=n; i++)

printf("%d! = %ldn", i, Func(i));

return 0;

long Func(int n)

static long p=1;

p=p* n;

return p;

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2021-07-28 13:52
    关注

    printf(“%d!=%ld\n”,i,Func(i))
    这个是输出语句,%d是通配符,用后面的i和Func(i)函数的返回值替换%d的位置,形成输出的信息
    这是个循环调用子函数
    输入n=5
    第一次循环,i=1
    Func(1),静态变量p=1,p=pn=1,所以输出1!=1
    第二次循环,i=2
    Func(2),静态变量p=1,p=p
    n=2,所以输出2!=2
    第三次循环,i=3
    Func(3),静态变量p=2,p=pn=23=6,所以输出3!=6
    第四次循环,i=4
    Func(4),静态变量p=6,p=pn = 64=24,所以输出4!=24
    第五次循环,i=5
    Func(5),静态变量p=24,p=pn=245 = 120,所以输出5!=120

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

报告相同问题?

问题事件

  • 系统已结题 8月5日
  • 已采纳回答 7月28日
  • 创建了问题 7月28日