首页 > 解决方案 > C++ 用户定义函数返回不正确

问题描述

xSum 的值在用户定义的函数中是正确的,但是当它返回到主函数时它是一个不正确的值。为什么值被错误地返回给主函数?

double arrayMulti(double X[], double Y[],const int size, double xSum, double ySum, double xySum);

int main()
{
    double slope, xSum, yInt,ySum,xySum,xSqrSum;
    const int size = 10;
    double X[size];
    double Y[size];

    arrayPop(X,Y,size);

    arrayMulti(X,Y,size,xSum,ySum,xySum);

    cout<<xSum<<endl;

}

double arrayMulti(double X[], double Y[],const int size, double xSum, double ySum, double xySum)
{
    xSum = 0, ySum = 0, xySum = 0;
    for (int i = 0; i<size; i++)
    {
        xSum = xSum + X[i];
        ySum = ySum + Y[i];
        xySum = xySum + X[i]*Y[i];
    }
    cout<<xSum<<endl;
    return xSum;
}

标签: c++returnuser-defined-functions

解决方案


您没有为xSumin分配任何内容main()。您的arrayMulti函数按值获取其参数,因此它不会更改在main(). 它确实返回一个值。

可能你想要的是类似的东西

xSum = arrayMulti(X,Y,size,xSum,ySum,xySum);

推荐阅读