错误原因:
1.在递归的时候,递归函数中忘记加返回return。
1.1做题时遇到一个奇葩错误,把它记到这里,看代码:
代码1:错误,用c++提交wrong answer,但是用g++提交却accepted。
int set_find(int d)
{
if(set[d]<0)
return d;
set_find(set[d]);//这里递归时没有返回值,只有在结束条件时返回(即最后一层递归有返回值,前面的没有返回值)
}
上述代码在进行递归的时候,只有在递归结束时的最后一层返回一个值d,但是并没有把值带到前面的递归当中。
但是在vc中却运行正确,似乎自动加了个返回return(见下面正确代码2)。
这可能与编译器有关,当时那道题我没加return,
用c++提交wrong answer,但是用g++提交却accepted。
(当时就感觉还是自己的代码有问题,终于在仔细检查之后还是找