重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
有 else 是
创新互联是专业的汤原网站建设公司,汤原接单;提供网站设计、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行汤原网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
只有 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;
}
}
#include stdio.h
//using namespace std;
float x, y, z;
float divide(float a, float b);
int main(void)
{
printf("\nEnter two float numbers: \n");
scanf("%d%d", x, y);
{
z = divide(x, y);
system("pause");
}
return 0;
}
float divide(float a, float b)
{
if(b == 0)
puts("\nThe second number can't be evaluated as 0! ");
//这个情况没有return
else
printf("\nThe value is %f",a/b);
//既然是函数,这应该用形参,(指针另说)
return a/b;
}
形参 实参 搞混了 函数里直接用的全局变量还不是函数的形参 还有 那个 printf("\nThe value is %f",a/b); 应该放到函数里或者在MAIN里加判断决定是否输出,而且divide函数里只有 在Y!=0时才有返回值 这样不对
你说的是函数的返回者吧函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。如调用正弦函数取得正弦值。对函数的值(或称函数返回值)有以下一些说明: 1) 函数的值只能通过return语句返回主调函数。 return 语句的一般形式为: return 表达式;或者为: return (表达式);该语句的功能是计算表达式的值,并返回给主调函数。在函数中允许有多个return语句,但每次调用只能有一个return 语句被执行,因此只能返回一个函数值。 2) 函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则以函数类型为准,自动进行类型转换。 3) 如函数值为整型,在函数定义时可以省去类型说明。 4) 不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。如例8.2中函数s并不向主函数返函数值,因此可定义为: void s(int n) { …… } 一旦函数被定义为空类型后,就不能在主调函数中使用被调函数的函数值了。例如,在定义s为空类型后,在主函数中写下述语句 sum=s(n); 就是错误的。为了使程序有良好的可读性并减少出错, 凡不要求返回值的函数都应定义为空类型。
handlesSimpleCmdStr(inputbuf)该函数调用地点先于定义,应该将定义提前或者将声明写在定义之前,还有问题需注意,函数的实现放在头文件里,在编译的时候头文件的内容会替换#include,如果头文件没处理好,可能有些问题会有些让人无语
C语言里不可以返回数组,只能返回指针
函数内的数组是局部变量,离开函数后就会离开了其作用域,原则上讲就会被销毁(实际是编译器及编译器选项而定),自然不能被回传
除了主函数以外的三个函数的返回类型都是void,但是函数体内部却有返回值,所以错了,把void改成int就可以了。