return true在C中返回0
发布时间:2020-12-16 10:23:16 所属栏目:百科 来源:网络整理
导读:这是一个简单的递归回文测试,它本身可以工作,但无论函数实际返回什么,都会返回0.这是我的代码,我离开了调试cout语句,所以你可以看到它确实有效: bool pal(int l,int r,char *a){ if(l = r) { cout "returning true" endl; return true; } if(a[l] != a[r])
这是一个简单的递归回文测试,它本身可以工作,但无论函数实际返回什么,都会返回0.这是我的代码,我离开了调试cout语句,所以你可以看到它确实有效:
bool pal(int l,int r,char *a) { if(l >= r) { cout << "returning true" << endl; return true; } if(a[l] != a[r]) { cout << "returning false" << endl; return false; } pal(l+1,r-1,a); } 解决方法
您的程序具有未定义的行为,因为存在根本不返回的路径.你应该在最后添加一个return语句:
return pal(l+1,a); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |