首页 > 解决方案 > 函数在 C++ 中返回错误值

问题描述

我正在尝试调用一个函数来返回输入数字的总和,但它只返回 0。

当在 main 中应用时,for 循环会正确计算总和,而无需调用该函数。然而,当我调用该函数时,它返回一个错误的值。

#include <iostream>
using namespace std;

int EvenOrOdd(int Number, int Value)
{
    if (Number % 2 == 0)
        Value = 1;
    return(Value);
}

int CalculateSum(int Number, int Sum)
{
    for (int i = 1; i <= Number; i++)
        Sum = Sum + i;
    return(Sum)
}

void main()
{
    int Number = 0, Value = 0, Sum = 0;

    cout << "Please enter a positive integer: ";
    cin >> Number;

    while (Number >= 1 && Number <= 100)
    {

        EvenOrOdd(Number, Value);
        if (Value == 1)
            cout << Number << " is Even";
        else
            cout << Number << " is Odd";

        CalculateSum(Number, Sum);
        cout << "\n" << Sum << " is the sum of the first " << Number;

        cout << "\nPlease enter a positive integer: ";
        cin >> Number;
    }
}

标签: c++function

解决方案


您收到的总和为 0,因为您没有将返回值分配给任何东西。

试试这个:

int sum = CalculateSum(Number, Sum);

因此,现在您将 CalculateSum 的返回值保存到变量 sum,您可以使用该变量将其输出给用户。


推荐阅读