阵列问题&返回功能

时间:2016-04-07 02:19:48

标签: c++ arrays return

所以我是C ++的新手,我正在编写一个程序来计算程序的平均值,中位数,标准差,最小值和最大值。我遇到的问题是我不知道如何从项目中的其他文件中正确调用函数,当我尝试打印(c out<<<<>)我的数组时,它返回一个奇怪的值如0 x 0017 c 530(忽略空格)。如果有人能帮我正确地返回这些功能,并正确打印列表,我将非常感激!这是我的代码(不包括.h文件):

#include <iostream>
using namespace std;
#include "stats.h"

int main()
{
    double nums[10000] = {};
    int n;

    cout << "Enter number of values: ";
    cin >> n;

    for (int i = 1; i <=n; i++) {
        cout << "Enter number " << i << ": ";
        cin >> nums[i-1];
    }

    // me trying to print the nu ms list
    cout << nums << endl;

    // me trying to call the function
    double mean(double nums[], int n);

    return 0;

}

统计信息。 CPP

#include "stats.h"


double mean(double nums[], int n)
{
    double sum = 0;
    double average;

    for (int i = 0; i > n; i++) {
        sum += nums[i];
    }

    average = sum / n;

    return average;
}

2 个答案:

答案 0 :(得分:0)

而不是

cout << nums << endl;

就像你有一个循环在数组中一次输入一个值一样,你还需要一个类似的循环来从数组中一次打印一个值。

要从另一个翻译单元调用一个函数,通常会在头文件中声明该函数,stats.h将是一个很好的候选者:

double mean(double nums[], int n);

然后只需从你的主要调用它:

std::cout << mean(nums, n) << std::endl;

就是这样。

此外:

using namespace std;

你需要有人帮你解决健忘症问题,completely forget that C++ has anything like this。这是糟糕的编程习惯。

答案 1 :(得分:0)

double mean(double nums[], int n);是函数声明,不是函数调用。你应该

double mean_value = mean(nums, n);
cout << mean_value << endl;

并且cout << nums << endl;不会打印出数组的元素,只是打印数组的地址。您需要循环数组以打印出所有元素。