永发信息网

C语言调用问题,大虾们帮忙.

答案:4  悬赏:70  手机版
解决时间 2021-05-04 15:13
  • 提问者网友:饥饿走向夜
  • 2021-05-04 01:51

小妹初学C,问题弱智,还请大虾们见谅。

 

#include "Stdio.h"
#include "Conio.h"
double fact(int n);

int main(void)
{
   int i,n;
   double result;

   printf("Enter n:");
   scanf("%d",&n);

   for(i=1;i<=n;i++){
             result=fact(i);
            printf("%d!=%.0f\n",i,result);
             }

  getch();
  return 0;
}
double fact(int n)
 {
   int i;
   double product;

   product=1;

   for(i=1;i<=n;i++){
         product=product*i;
   }


    return product;
}

 

请问,程序中的double fact(int n)的模块中,结果是怎么从子程序中传递到主程序中的?这么问可能有点含糊,即子程序中结果是先到product,然后给了fact吗?然后,被调用到主函数中的reslut 吗??

望大虾耐心赐教~

最佳答案
  • 五星知识达人网友:千夜
  • 2021-05-04 02:30
额,在编译的时候就单独为fact ()函数分配了内存,它象所有的函数那样执行,得到自己的结果product ,这个变量的作用域止于函数内,遇return 函数终止,它的值就是最终函数结果,以它代替主函数,返回return 后面表达式的值,主函数中的调用语句不就是一般的赋值了吗?之后,fact 函数被分配的空间释放,product 也就不存在了
全部回答
  • 1楼网友:拜訪者
  • 2021-05-04 04:37

在“double fact(int n)”函数中,将计算的结果“product”的副本返回。

然后在“main()”函数中,fact() 函数的结果,即“product”的副本赋给变量“result”

  • 2楼网友:人间朝暮
  • 2021-05-04 04:09

  大概看了一下你的小程序:

    具体是首先主函数接收到用户输入,然后调用fact函数,然后经过计算,最后fact函数返回product的值,最后result=fact(i); 这个语句就是得到fact函数返回的值,然后再进行打印! 

  • 3楼网友:青灯有味
  • 2021-05-04 02:39

“这么问可能有点含糊,即子程序中结果是先到product,然后给了fact吗?”

嗯,是这样的

每个函数都有一个返回值,用 return <变量> 表示

return product;  表示fact()的返回值是product

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯