如何将用户输入作为参数传递给函数原型?

时间:2015-02-08 04:44:27

标签: c++ function parameters arguments prototype

#include <iostream>
#include <cmath>

using namespace std;

int nCount = 0, nX = 0;
double sum_total, nAverage;
// Function Prototypes

int Sum(int number);                        // Returns the sum of two ints
int Max(int i, int j);                          // Returns max of two ints
int Min(int i, int j);                          // Returns min of two ints
double Average(int nCount, int sum_total);  // Returns the avg - (sum_total/count)

int main(){
    cout << "How many numbers would you like to enter?" << endl;
    cin >> nCount;
    cout << "You would like to enter " << nCount << " numbers\n";

    while (nX < nCount)
    {
        int a;
        cout << "Please enter you numbers: "; // Pass this value into functions
        cin >> a;
        // Call Sum, Max, Min, and Average passing these two arguments
        int Sum(a);
        nX++;
    }
    cout << "The total is: " << sum_total << endl;
    system("PAUSE");
    return 0;
}

int Sum(int number)
{
    sum_total = number + number;
    return sum_total;
}

这是我正在进行的计划。我想要做的是让用户使用cin输入任意数量的整数,然后将该值传递给函数int sum,将所有数字加在一起,然后显示它们的总和。 while循环允许用户输入他们想要的多少个数字,然后将该参数传递给下一个函数。然而,该程序将返回0作为总和。 0被显示的原因是什么?为了使这个程序有效,我需要做些什么?

修改

int Max(int number)
{
    if (number > currentMax)
        currentMax = number;
    return currentMax;
}

//

int Min(int number)
{
    if (currentMin < number)
        currentMin = number;
    return currentMin;
}

1 个答案:

答案 0 :(得分:0)

您的函数调用无效。你应该这样称呼它:

Sum(a);

另外,因为sum_total是一个全局变量,所以你不需要从Sum返回一个值。

修改

以下是适当的Sum()定义:

void Sum(int number)
{
    sum_total += number;
}

注意:不要忘记将sum_total初始化为0。