k1>>k2>>k3>>k4; cout<<"请输入初始值b1,c1"<>b1>>c1; B=Funb(n); C=Func(" />
我的位置:速网百科 > 电商资讯 腾讯云

腾讯云函数相互调用,腾讯云函数

作者:潘烨烁 时间:2022-05-21 11:14:00

两个函数相互调用怎么办啊?如题

两个函数相互调用怎么办啊?如题

  double Funb(int n);
  double Func(int n);
  double Func(int n){
   double c,c1,k1,k2;
   if (n=1)
   {c=c1;
   cout<<c<<endl;}
   else
   {
   c=Func(n-1)*(1+k1-k2*Funb(n-1));
   cout<<c<<endl;}
   return c;
  }
  double Funb(int n){
   double b,b1,k3,k4;
   if (n=1)
   {b=b1;
   cout<<b<<endl;}
   else
   {b=Funb(n-1)*(1-k3+k4*Func(n-1));
   cout<<b<<endl;}
   return b;
  }
  void main(){
   int n;
   double k1,k2,k3,k4;
   double b1,c1;
   double B,C;
   cout<<"请输入天数N"<<endl;
   cin>>n;
   cout<<"请输入k1到k4的值"<<endl;
   cin>>k1>>k2>>k3>>k4;
   cout<<"请输入初始值b1,c1"<<endl;
   cin>>b1>>c1;
   B=Funb(n);
   C=Func(n);
  }
  1. 将两个函数作前置声明.这样就可以相互调用了.
  2. 你的变量名与函数名重复,导致编译器不知道如何解析.
  这是改正后的代码.
  如果还有不清楚请加QQ群:58057516.大家共同讨论进步.

  

函数之间是不是可以互相调用?不可以什么?

  两个函数之间可以相互调用,但如果没有退出机制,会陷入死循环的。
  你可以试下下面的代码,注释的部分是控制相互调用次数
  #include <stdio.h>
  void funA();
  void funB();
  //int callCount=0;
  int main(void)
  {
   funA();
   return 0;
  }
  void funA()
  {
   printf("funA is working...\n");
   // if(++callCount<10)
   funB();
  }
  void funB()
  {
   printf("funB is working...\n");
   funA();
  }

函数相互调用是个啥原理,c语言

函数相互调用是个啥原理,c语言

  函数的调用是借助”栈“来实现,
  系统将整个程序运行时所需的数据空间安排在一个栈中,
  每当调用一个函数时,就在栈顶分配一个存储区,进行压栈操作,
  每当一个函数退出时,就释放它的存储区,进行出栈操作,
  当前时刻正在运行的函数永远都在栈顶位置
  至于会不会变成死循环,这要看函数内部的具体实现
  比如
  # include <stdio.h>
  f();
  g();
  int main(void)
  {
   f();
   return 0;
  }
  f()
  {
   printf("AAAAAA\n");
   g();
  }
  g()
  {
   printf("BBBBB\n");
   f();
  }
  f()调用g() 压栈
  g()又调用f() 还是压栈
  这种情况就类似于死循环,但是运行时不会永远输出
  原因就是函数的调用在栈中执行
  栈是有一定的空间
  当栈空间用完即发生栈溢出时输出就会终止
  仅供参考! 追问 那怎么把这个程序改动一下,可以把它变成 非无限循环的 两个函数相互调用的程序呢??
  ----------------------------------------
  对不起 我选错最佳答案了。。不是故意的。。我再提个问你下吧

如何使用腾讯云函数搭载一个纯HTML+CSS+JS的静态网页?

  用对象存储加CDN就行了,你用函数计算不容易处理这种有额外CSS和js文件的

版权声明:本文由互联网用户自发贡献,仅代表作者观点。若文章违规或侵权,请 (举报反馈) ,核实后立即删除。