c ++用函数求平均值

时间:2015-12-15 19:42:23

标签: c++ arrays function average

当我将所有内容放入main时,此代码可以找到负面元素的平均值。问题是当我尝试将其拆分为函数时。如何连接cinarraynegative_average函数中的元素?

#include <iostream>

using namespace std;
int main()
{
    cinarray();
    negative_average();
}

int cinarray()
{
    int A[3][3];
    int i, j;

    for (i = 0; i < 3; i++)
        for (j = 0; j < 3; j++) {
            cout << "\n A[" << i + 1 << "][" << j + 1 << "]=";
            cin >> A[i][j];
        }

    for (i = 0; i < 3; i++) {
        for (j = 0; j < 3; j++)
            cout << A[i][j] << "\t";

        cout << "\n";
    }

    // compute average of only negative values
    int negative_average()
    {
        int negCount = 0;
        int average = 0;

        for (int x = 0; x < 3; ++x) {
            for (int y = 0; y < 3; ++y) {
                if (A[x][y] < 0) {
                    ++negCount;
                    average += A[x][y];
                }

            }
        }
        if (negCount > 0) {
            average /= negCount;
            cout << "Average of only negative values \n" << average;
        }
    }
}

还有一件事,为什么错误列表显示我需要“;”

int negative_average()
{ //here
    int negCount = 0;
    int average = 0;

3 个答案:

答案 0 :(得分:1)

首先,你不能在另一个函数体内定义一个函数,这就是&#34; ;在这里需要的原因&#34;错误。将其移至全局范围。在这种情况下,您可以在int A[3][3];中创建main,并相应地声明您的功能:

void cinarray(int A[3][3]);                // why int return type?
void negative_average(const int A[3][3]);

然后将A传递给两者。

答案 1 :(得分:0)

作为选项,定义主要的数组并传递对cinarray()negative_average()的引用。

做这样的事情:

int main()
{
    int A[3][3];
    cinarray(A);
    negative_average(A);
    return 0;
}

其中:

int cinarray(int (&A)[3][3])
int negative_average(const int (&A)[3][3])

答案 2 :(得分:0)

您的阵列A对两个功能都不可见。你需要在main()中声明它,然后将它作为参数传递给你的其他函数。