C++ 在结构中获取数组元素
这是我的代码,您可以看到我使用了结构数组。问题是我应该如何通过用户直接获取数组元素?您可以在下面看到这些元素在执行之前是如何分配给程序的 任何帮助都会被拒绝 包括 包括 使用名称空间std; 结构数据 { int x,y; }; 双插值-F[],int席,int n { 双P=0;C++ 在结构中获取数组元素,c++,arrays,structure,C++,Arrays,Structure,这是我的代码,您可以看到我使用了结构数组。问题是我应该如何通过用户直接获取数组元素?您可以在下面看到这些元素在执行之前是如何分配给程序的 任何帮助都会被拒绝 包括 包括 使用名称空间std; 结构数据 { int x,y; }; 双插值-F[],int席,int n { 双P=0; 对于int i=0;我不理解您的问题。您想从用户那里读取输入并将其保存在数组中吗?您想让用户在数据f[]={0,2},{1,3},{2,12},{5147}中输入您分配给f[]的数字吗;?您的代码定义了一个未初始化的
对于int i=0;我不理解您的问题。您想从用户那里读取输入并将其保存在数组中吗?您想让用户在数据f[]={0,2},{1,3},{2,12},{5147}中输入您分配给f[]的数字吗;?您的代码定义了一个未初始化的文件作用域变量S,该变量被传递给函数interpolate。主函数定义并初始化了一个未使用的自动变量f。请清理您的代码。@Yksisarvinen-是mate@Michael_H-是的,谢谢@Biffen.编辑。
#include<iostream>
#include<math.h>
using namespace std;
struct Data
{
int x, y;
};
double interpolate(Data f[], int xi, int n)
{
double P = 0;
for (int i = 0; i<n; i++)
{
double p= f[i].y;
for (int j = 0;j<n;j++)
{
if (j != i)
p =p*(xi - f[j].x) / (f[i].x - f[j].x);
}
P += p;
}
return P;
}
int main()
{
int input[8];
cout << "Enter first value: \n";
cin >> input[0];
cout << "Enter second value: \n";
cin >> input[1];
cout << "Enter third value: \n";
cin >> input[2];
cout << "Enter fourth value: \n";
cin >> input[3];
cout << "Enter fifth value: \n";
cin >> input[4];
cout << "Enter sixth value: \n";
cin >> input[5];
cout << "Enter seventh value: \n";
cin >> input[6];
cout << "Enter eighth value: \n";
cin >> input[7];
Data f[] = {{input[0], input[1]}, {input[2], input[3]}, {input[4], input[5]}, {input[6], input[7]}};
cout << "Value of f(3) is : " << interpolate(f, 3, 4) << endl;
system("pause");
return 0;
}