【发布时间】:2018-12-03 19:48:22
【问题描述】:
我从函数返回时遇到了这个问题。 这是一个搜索函数,如果函数找到我给出的值,它应该返回 1,但是不,它返回的是 0 而不是 1。(对不起,我的英语不好。)
int rech(int tab[],int n,int i,int r){
if(i<n){
if(tab[i]==r){
return 1;
}
i++;
rech(tab,n,i,r);
}
return 0;
}
int main(int argc, char** argv) {
int tab[5]={1,2,3,4,5};
printf("%d",rech(tab,5,0,2));
return 0;
}
【问题讨论】:
-
欢迎来到 Stack Overflow!听起来您可能需要学习如何使用调试器来逐步执行代码。使用好的调试器,您可以逐行执行您的程序,并查看它与您期望的偏差在哪里。如果您要进行任何编程,这是必不可少的工具。进一步阅读:How to debug small programs 和 Debugging Guide
-
你没有使用
rech的返回值。0总是返回。试试return rech(...) -
@JVApen C++ 主要是 C 的超集,大多数 C 功能(如
printf)都可以正常工作。不要评判。 -
@MarkRansom 这里的普遍共识是选择一种语言。
-
将 C++ 视为 C 的超集让很多人感到非常悲痛。刚开始时最好将它们视为两种完全独立的语言。