当我将所有内容放入main
时,此代码可以找到负面元素的平均值。问题是当我尝试将其拆分为函数时。如何连接cinarray
和negative_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;
答案 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()中声明它,然后将它作为参数传递给你的其他函数。