C++用于填充数组的用户定义函数



我只是使用cout来检查函数是否正常工作。函数中的cout起作用,输出为17,这是文本文件中的第一个数字。然而,main()函数中的cout输出0。为什么会这样?

#include <iostream>
#include <fstream>
#include <cmath>
#include <iomanip>
using namespace std;
double arrayPop();
int main()
{
double X[10];
double Y[10];
arrayPop();
cout<<Y[0];
return 0;
}
double arrayPop()
{
string horAxis, vertAxis;
ifstream input;
input.open("lin_reg-2.txt");
input>>horAxis;
double X[10];
for (int i = 0; i<10; i++)
{
input>>X[i];
}
input>>vertAxis;
double Y[10];
for (int i = 0; i<10; i++)
{
input>>Y[i];
}
cout<<Y[0]<<endl;
}

您需要将数组作为参数传递给方法arrayPop()

然后你会有这样的东西:

#include <iostream>
#include <fstream>
using namespace std;
void arrayPop(double X[], double Y[], const int size);
int main()
{
const int size = 10;
double X[size];
double Y[size];
arrayPop(X, Y, size);
cout<<Y[0];
return 0;
}
void arrayPop(double X[], double Y[], const int size)
{
string horAxis, vertAxis;
ifstream input;
input.open("lin_reg-2.txt");
input >> horAxis;
for (int i = 0; i < size; i++)
{
input >> X[i];
}
input >> vertAxis;
for (int i = 0; i < size; i++)
{
input >> Y[i];
}
cout<<Y[0]<<endl;
}

附言:我建议你阅读C++中的变量作用域。

最新更新