以下是一个函数,用于使用递归返回数字的反转.但是,它只返回数字的最后一位数字.我想知道为什么以及如何解决它?
int rev(int number)
{
int revNum=0, sum=100;
if(number<=9) return(number);
else if(number>0)
{
return(rev(number/10)+revNum);
revNum=(number%10)*sum; sum=sum/10;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!!!
这是一个带有递归二进制搜索算法的C程序,但是当我运行它时,调试器说二进制搜索功能中存在访问分段错误.为什么这样,我该如何解决这个问题?
这是递归二进制搜索功能:
int binSearch(int val, int numbers[], int low, int high)
{
int mid;
mid=(low+high)/2;
if(val==numbers[mid])
{
return(mid);
}
else if(val<numbers[mid])
{
return(binSearch(val, numbers, low, mid-1));
}
else if(val>numbers[mid])
{
return(binSearch(val, numbers, mid+1, high));
}
else if(low==high)
{
return(-1);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢 :)