C++ 用户定义的函数来填充数组
C++ User defined function to populate an array
我只是用 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;
}
PS:我建议您阅读有关 Variable Scope in 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;
}
PS:我建议您阅读有关 Variable Scope in C++ 的内容。