c++ - 函数在 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;
}
}
解决方案
您收到的总和为 0,因为您没有将返回值分配给任何东西。
试试这个:
int sum = CalculateSum(Number, Sum);
因此,现在您将 CalculateSum 的返回值保存到变量 sum,您可以使用该变量将其输出给用户。