&引用';yc&x27;不能用作函数“;C+中的错误+; 我用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; } #包括 #包括 #包括 使用名称空间std; 使用arma; int main() { 浮动a[3]; 浮点数c; int gp=100; cout

&引用';yc&x27;不能用作函数“;C+中的错误+; 我用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; } #包括 #包括 #包括 使用名称空间std; 使用arma; int main() { 浮动a[3]; 浮点数c; int gp=100; cout,c++,compiler-errors,C++,Compiler Errors,yc是一个单浮点数 编译器将symbol()视为函数调用。这就是错误的含义 也许可以创建一个yc数组 float yc[gp]; 和使用 yc[i] = .... 如突出显示的-yc[gp]可能不起作用,因此 float * yc = new float[gp]; 在main()的末尾 下面是一个示例,说明如何将std::vector用于此类任务 vector v(size);的声明使用size类型的float值填充向量,这些值都设置为0.0,这是float的标准值: #include &

yc
是一个单浮点数

编译器将
symbol()
视为函数调用。这就是错误的含义

也许可以创建一个yc数组

float yc[gp];
和使用

yc[i] = ....
如突出显示的-
yc[gp]
可能不起作用,因此

float * yc = new float[gp];
main()的末尾


下面是一个示例,说明如何将
std::vector
用于此类任务

vector v(size);
的声明使用
size
类型的
float
值填充向量,这些值都设置为
0.0
,这是
float
的标准值:

#include <iostream>
#include <vector>

using namespace std;

// demonstrates how a vector is used as a better variadic array:
void vector_usage(int size){

    // initializing a vector with size 0 values
    std::vector<float> v(size);

    // fill in some (not very meaningful) values
    for(int i=0; i<size; ++i) {
        if ((4 <= i) && (i < 8))
            v[i] = 15.0/i;
    }

    // inspect the result on console:
    for (auto e: v) {
        cout << e << " ";
    }
    cout << endl;

    // hopefully having learned something ;)

}

int main() {
    vector_usage(12);
    return 0;
}
#包括
#包括
使用名称空间std;
//演示如何将向量用作更好的可变数组:
无效向量_用法(整数大小){
//正在初始化大小为0的向量
标准:向量v(大小);
//填写一些(不是很有意义的)值

对于(int i=0;i什么应该
yc(i)
be??yc是外倾角线的方程式。你的代码和回答没有意义。正如所问的,你想要什么
yc(i)
be?无论
yc
对您意味着什么,您将它声明为一个简单的
float
变量,实际上您正试图将其作为一个函数调用。看起来您正试图用for循环中计算的值填充一个float数组。如果您不使用它的语言与它对话,每个编译器都会抱怨。可能是重复的oVLA的标准不是C++。也许使用<代码> STD::向量< /代码>将是一个更好的解决方案。如果AsKER显然是新的C++,为什么要使用C-C-ISH解决方案?<代码> STD::vector < /代码>也有助于避免未初始化的数据(可以正式地)由OP所示的<代码> > < /Cord>样式,对我来说是如此。
#include <iostream>
#include <vector>

using namespace std;

// demonstrates how a vector is used as a better variadic array:
void vector_usage(int size){

    // initializing a vector with size 0 values
    std::vector<float> v(size);

    // fill in some (not very meaningful) values
    for(int i=0; i<size; ++i) {
        if ((4 <= i) && (i < 8))
            v[i] = 15.0/i;
    }

    // inspect the result on console:
    for (auto e: v) {
        cout << e << " ";
    }
    cout << endl;

    // hopefully having learned something ;)

}

int main() {
    vector_usage(12);
    return 0;
}