错误提示稀奇古怪
实际上是因为你的main函数返回有问题
main定义为int, 但你结束的时候仅仅是return; 成void了.
按惯例return 0;就行
i是一个变量,如果这个变量在一个函数内,可以作为函数的返回值.
return 是返回一个函数的值.函数内的某个变量可以作为函数的返回值返回.
但是在函数外,直接返回某个不在函数内部的变量是不可以的.
比如在main 中.
main()
{
int i ;
return i;
}
这是不行的.返回的是变量的内存地址.
#include?stdio.h
//using?namespace?std;
float?x,?y,?z;
int?main(void)
printf("\nEnter?two?float?numbers:?\n");
scanf("%d%d",?x,?y);
system("pause");
return?0;
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;
有 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);看行不行;
return jcjg;
除了主函数以外的三个函数的返回类型都是void,但是函数体内部却有返回值,所以错了,把void改成int就可以了.
以上就是土嘎嘎小编为大家整理的c语言函数返回值异常相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!