gpt4 book ai didi

c++ - 这个错误是什么意思 : variable-size type declared outside of any function

转载 作者:行者123 更新时间:2023-11-28 02:55:49 27 4
gpt4 key购买 nike

我有一个名为 fx 的函数,它有两个输入变量作为一个数组和一个 double 变量,所以我这样编写我的程序,但我遇到了以下错误。问题出在输入数组的定义上,但我不知道如何解决。另一个问题是当我想用输入调用这个 fx 函数时,我怎样才能给出一个完整的数组作为第一个输入变量 — fx(matris[n],x)?

error : variable-size type declared outside of any function

代码:

#include<iostream>
using namespace std;
int n=1;
double y=1;
double x;
double fx(double matris[], double x){
double f = 0;
for(int i=0;i<n;i++)//e.g f(X)= 3x^2 + 2x -4 = 0 [3 2 -4]
{
y = 1;
for(int k = 0;k<n-i-1;k++){//temp: y = x*x*x or x*x or x ... (calcules powers)
y = y*x;
}
f = f+y*matris[i];// 3 * y((x*x)) + 2 * y((x)) + -4* y(1)
}
return f;
}
double dif(double matris[], double x){
double temp[n];
temp[0] = 0;
for (int i=0;i<n;i++){
temp [i+1] = matris[i] * (n-i-1);
}
return fx(temp[n], x);
}
int main(){
//newton-raphson method to solve a equilibrium
cout << "please enter the degree of your equilibrium: ";
cin >> n;
double matris[n];
cout << "please enter your equlibruim array: ";
for(int i =0; i<n; i++)
cin >> matris[i];

//x = x0 - f(x)/f'(x);
x = 1;
fx(matris,x);

return 0;
}

最佳答案

由于传递给函数的数组实际上没有大小(变量或其他),编译器反对您传递变量 n 作为 matris 的大小.

只需从 double matris[n] 表达式中删除 n,将方括号留空。

[注意代码执行 cin > n; double matris[n]; 不符合标准的 C++ - C++14 将引入这样的概念,但对于现有的 C++ 标准,这是不允许的 - 只有 GNU C++ 和一些“GNU C++ 兼容”编译器支持这个构造]。

关于c++ - 这个错误是什么意思 : variable-size type declared outside of any function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22027946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com