C ++用户定义函数返回不正确[关闭]

Posted

技术标签:

【中文标题】C ++用户定义函数返回不正确[关闭]【英文标题】:C++ user defined function returning incorrrect [closed] 【发布时间】:2020-11-24 02:34:52 【问题描述】:

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;

【问题讨论】:

你怎么知道它们不同?您的程序没有任何输出。 我只是在主函数和用户定义函数中都放了一个 cout。用户定义的 -.1088 是正确的,但主函数给出了 6.76672e-319,无论返回是否在用户定义的函数中都会发生这种情况 请将该代码与输出一起添加到问题中,而不是作为评论。 谢谢,这样更好。你打开警告了吗?这样做并修复所有警告。 【参考方案1】:

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

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

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

【讨论】:

以上是关于C ++用户定义函数返回不正确[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

函数不返回小数,有时返回错误值?

函数的返回类型有几种?它们的含义是啥?

函数返回不正确的值[重复]

简单的自定义调试函数【C语言】

创建一个不返回任何内容的用户定义函数

从 sql 程序调用用户定义的标量函数