【发布时间】:2017-09-22 06:55:04
【问题描述】:
我正在使用 C++ 计算 NACA 4 位翼型坐标。在这段代码中,我使用了犰狳库的 linspace 函数将 x 划分为线性间隔的点。当我使用 for 循环为每个 x 的值计算 yc 的值时,我得到错误 “yc”不能用作函数。感谢您的帮助。
#include<iostream>
#include<armadillo>
#include<vector>
using namespace std;
using namespace arma;
int main()
{
float a[3];
float c;
int gp = 100;
cout << "Please Enter NACA 4 digits" << endl;
cout << "Please Enter 1st digit" << endl;
cin >> a[0] ;
cout << "Please Enter 2nd digit" << endl;
cin >> a[1] ;
cout << "Please Enter last 2 digits" << endl;
cin >> a[2] ;
cout << "Please Enter Chord Length" << endl;
cin >> c;
float m=(a[0]*c)/100;
float p=(a[1]*c)/10;
float t=(a[2]*c)/100;
cout << m << endl;
cout << p << endl;
cout << t << endl;
vec x = linspace<vec>(0, c, gp);
float yc;
for(int i=0;i<gp;++i)
{
if (x(i) = 0 && x(i) <= p){
yc(i) = (m/(p*p))*((2*p*(x(i)))-(x(i)*x(i)));
}
if (x(i) > p && x(i) <= c) {
yc(i) =(m/((1-p)*(1-p)))*((1-(2*p))+(2*p*x(i))-(x(i)*x(i)));
}
}
cout<< yc <<endl;
return 0;
}
【问题讨论】:
-
yc(i)应该是什么?? -
Yc 是弧线方程。
-
您的代码和响应没有意义。如被问及,你想要
yc(i)是什么? -
无论
yc对您意味着什么,您都将它声明为一个简单的float变量,而您实际上是在尝试将其作为函数调用。看起来您正在尝试使用在 for 循环中计算的值填充浮点数组。每个编译器都会抱怨,如果你不使用它的语言与之交谈。 -
可能与stackoverflow.com/q/46223437/2932052 重复? ;)
标签: c++ compiler-errors