错误:类型为'int [1]'和'float'的无效操作数为二进制'operator *'

时间:2019-04-02 01:23:14

标签: c++

运行代码时出现错误:

  

错误:类型'int [1]'和'float'的无效操作数为二进制'operator *'

Codeblocks告诉我错误出现在“ ct = ...”前面?

我的代码:

#include <iostream>
#include <math.h>

using namespace std;
float dt = 0.01;
int p = 50;
float ct = 0;
int main()
{
 int state [5][1] = {5,5,0,100,0 };
 // cout << *state[3];

for (float i = 0; i < 10; i+dt){
ct = (state[0]+(2*state[4]/state[5])* sin(state[4]*dt/2)*cos(state[2+state[4])*dt/2);

    }

}

1 个答案:

答案 0 :(得分:0)

您声明state是一个由5个数组组成的数组,每个数组1个int。由于state是一个数组数组,因此state[i]本身就是一个数组。因此,当您编写类似state[4]*dt之类的内容时,您要在此处执行的操作是将一个数组(state[4]是一个int的数组)乘以floatdtfloat)。虽然您可以将int乘以float,但是不能将int[1]乘以float(即您可能要确保始终访问数组内部数组的正确子元素,例如state[4][0],或者不希望使state成为数组中的数组第一名...

除此之外,该行中还有一个错字,请检查方括号。