运行代码时出现错误:
错误:类型'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);
}
}
答案 0 :(得分:0)
您声明state
是一个由5个数组组成的数组,每个数组1个int
。由于state
是一个数组数组,因此state[i]
本身就是一个数组。因此,当您编写类似state[4]*dt
之类的内容时,您要在此处执行的操作是将一个数组(state[4]
是一个int
的数组)乘以float
(dt
是float)
。虽然您可以将int
乘以float
,但是不能将int[1]
乘以float
(即您可能要确保始终访问数组内部数组的正确子元素,例如state[4][0]
,或者不希望使state
成为数组中的数组第一名...
除此之外,该行中还有一个错字,请检查方括号。