【发布时间】:2021-07-24 16:49:18
【问题描述】:
我一直在尝试编写一个递归函数,它扫描一系列数字并返回奇数索引中的数字之和减去偶数索引中的数字之和。
最大的问题:函数在被调用时不应该接收任何参数;我必须在一个函数中完成。
编辑:所以,我编写了这段代码,它似乎在大多数情况下都可以工作,但问题是我不应该使用函数发送任何参数(f 不应该存在)
void Ex1() // this is sort of like the main
{
int f = 1, res;
res = sumofodd_even(f);
printf("sum is: %d\n", res-1);
}
int sumofodd_even(int flag)
{
int num = 0;
printf("enter a number. to stop enter -1 >> \n");
scanf_s("%d", &num);
if (num != -1)
{
if (flag == -1)
num *= -1;
return num + sumofodd_even((-1) * flag);
}
}
顺便说一句:不能使用指针或数组...
将不胜感激。
【问题讨论】:
-
int sumofodd_even(int counter) { ... /*recurse*/sumofodd_even(counter + 1); ... } -
我迷路了。您想知道此函数中的迭代次数 次数,还是您选择不向我们显示的函数中的递归调用次数 次数?
-
我正在尝试以递归方式编写与此类似的函数。我没有发布到目前为止我得到的东西,因为它并不多,只是尝试一下......