如何解决由我要调用的求和函数引起的分段错误? C ++

问题描述 投票:2回答:2

我正在尝试创建稍后在程序中调用的函数,这些函数本质上将执行稍后需要的操作。我调用了9个函数,包括:加法,减法,乘法,除法,模数,平方根,绝对值,幂和求和。对于前8个操作,将模块转换为功能没有问题。但是,由于C ++中没有用于求和的符号,因此在尝试将其模块转换为函数时遇到了一个问题,该程序允许我运行它,如果我运行所有其他操作,则可以,但是只要尝试执行给我的求和函数打电话给我一个分割错误。我的代码如下:

//summation function
int summ(int a)
{
    return summ(a);
    {
        int summ=0;
        int n=a;

        for (summ=0; summ<n; summ++)
        {
            summ += summ;
        }
    }
}

任何帮助或建议,我们将不胜感激。我可以提供所需的任何其他信息,谢谢。

c++
2个回答
3
投票

您的函数以return语句作为第一行。没有执行任何其他操作。因此,您具有无限递归。好像函数是:

int summ(int a)
   return summ(a);
}

0
投票

谢谢大家的帮助。我将返回部分移至大括号的末尾并更改了变量名。我的代码现在看起来像:

int summation(int a)
{
    int n = a, sum = 0;

    for (int i = 1; i <= n; ++i)
    {
       sum += i;
    }

    return sum;
}

它完全按照我的要求运行。我对我的阶乘函数应用了相同的格式,它也可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.