2 u013316504 u013316504 于 2014.01.05 20:20 提问

关于无限递归的问题。

我在写归并排序时需要写一个递归实现,结果无限递归了,代码类似下面:
void fun(int a, int b)
{
int mid;
if (a < b)
{
mid = (a + b)/2;
fun (a,mid);
fun (mid,b);
}
}
我用vS2010试了一下,好像没问题,怎么回事?
求解?

2个回答

wanfy8800
wanfy8800   2014.01.05 20:48

第一次mid = (a + b)/2,再fun (a,mid);mid肯定大于a,然后mid=(a + mid)/2,迭代到最后mid=a,fun (mid,b)最后mid=b;这程序实现了什么真没看懂,不过结果感觉没有意义;而且你这个函数是传值调用的,不是传引用的,还是void型,真不知道有什么意义

u013316504
u013316504 没什么意义只是演示用
接近 4 年之前 回复
wanfy8800
wanfy8800   2014.01.05 20:33

这个x在函数中没定义怎么就用了呢

u013316504
u013316504 sorry,写的时候没检查
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片