【发布时间】:2011-06-03 07:26:57
【问题描述】:
我是递归概念的新手。我想编写一个递归函数,它以浮点数和整数作为参数,并以浮点值保持不变而整数值变化的方式递归调用它
我写了以下代码:
#include <stdio.h>
float sum(float f, int k)
{
static float c;
c = f - k;
c = sum(f, k - 1);
return c;
}
int main()
{
float f, g = 10.00;
int i = 5;
f = sum(g, i);
printf("the sum of integer and float = %f", f);
}
当我编译它时它没有显示错误,但是当我运行程序时它显示一个分段错误。
我的问题如下:
- 代码有什么问题?
- 为什么显示分段错误?
- 如何在具有多个参数的函数中使用递归?
请用一些有两个参数的递归函数的例子来解释一下。
【问题讨论】:
-
这条语句c = sum(f, k - 1);应该是c += sum(f, k - 1);。如果涉及逻辑的话。
-
无终止条件
标签: c++ c segmentation-fault