大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
除了主函数以外的三个函数的返回类型都是void,但是函数体内部却有返回值,所以错了,把void改成int就可以了。
10年积累的网站设计制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有安国免费网站建设让你可以放心的选择与我们合作。
有 else 是
只有 n == 0 return jcjg;返回jcjg 否则不确定返回何值(实际返回 eax 寄存器的最后一次值)
没有 else 任何时候 return jcjg;总是会返回jcjg。
不过没见过这样用递归的,
像这种简单计算,正常都是用迭代处理,不用递归的;
只有像树一类的复杂的数据结构,和排序或更复杂的算法,才用递归实现.
int jc(int n)
{
if(n != 0)
{
printf("%d-%d\n",jcjg,n);
jcjg = jcjg * n;
//jc(n - 1);改成
return jc(n - 1);看行不行;
}
else
{
return jcjg;
}
}
你说的是函数的返回者吧函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。如调用正弦函数取得正弦值。对函数的值(或称函数返回值)有以下一些说明: 1) 函数的值只能通过return语句返回主调函数。 return 语句的一般形式为: return 表达式;或者为: return (表达式);该语句的功能是计算表达式的值,并返回给主调函数。在函数中允许有多个return语句,但每次调用只能有一个return 语句被执行,因此只能返回一个函数值。 2) 函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则以函数类型为准,自动进行类型转换。 3) 如函数值为整型,在函数定义时可以省去类型说明。 4) 不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。如例8.2中函数s并不向主函数返函数值,因此可定义为: void s(int n) { …… } 一旦函数被定义为空类型后,就不能在主调函数中使用被调函数的函数值了。例如,在定义s为空类型后,在主函数中写下述语句 sum=s(n); 就是错误的。为了使程序有良好的可读性并减少出错, 凡不要求返回值的函数都应定义为空类型。