gpt4 book ai didi

c - 通过整数递归搜索

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:22 25 4
gpt4 key购买 nike

尝试在 C 编程中进行递归时,我遇到了一些问题。这是预期的输出:

Enter a number: 1234567
Enter the digit position: 3
rDigitValue1(): 5
rDigitvalue2(): 5

这是我的代码:

int rdigitValue1(int num, int k)
{
int count = 0, output;
if (count != k) {
rdigitValue1(num / 10, k);
count++;
}
else {
output = (num % 10);
}
return output;
}

参数num是数字,参数k是位置。使用这些代码,当我尝试运行该程序时,它只是崩溃而没有提示任何错误消息。有什么想法吗?

已修改

void rdigitValue2(int num, int k, int *result)
{
if (k != 1) {
rdigitValue2(num / 10, k - 1, result);
*result = num;
}
else {
*result = num % 10;
}
}

最佳答案

您遇到了堆栈溢出!您永远不会递减数字位置并继续循环。您当前的代码可以简化为:

int rdigitValue1(int num, int k)
{
if (k != 0) {
rdigitValue1(num / 10, k);
}
}

关于c - 通过整数递归搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32663092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com