我的for循环有什么问题?

时间:2010-10-11 02:19:34

标签: c arrays loops for-loop

我正在使用lite-C制作游戏(与C语法完全相同)。我无法使这个循环工作。 它在编译时在这一行给出了一个错误。
for(int i = 0; i < (cantenemigu * 3); i += 3)

我有一个数组,其中包含创建敌人的位置信息。 数组包含x,y,z坐标。
cantenemigu是阵列中存在的敌人数量。

通过这个循环,我将获得每个敌人的信息并创建它。

[编辑] 答案没有用。我加了;在写这篇文章时非常不自觉。

也许问题出在其他地方;

这是洞部分。

int cantenemigu = 3;
var posenemigu[] = {-900, 550, -10, -1100, 1600, -10, 70, 1680, 20};
void load_enemigunan()
{ 
 for(int i = 0; i < (cantenemigu * 3); i += 3) 
 {
  ent_create("targetr.mdl",vector(posenemigu[i],
             posenemigu[i + 1],
             posenemigu[i + 2]),NULL);
 } 
}

如果我不添加&lt; br&gt;

,这是代码

我解决了。

这很有效。

int i
for(i = 0; i < 3*cantenemigu; i += 3)
{
    ent_create("targetr.mdl",vector(posenemigu[i],
                                                posenemigu[i + 1],
                                                posenemigu[i + 2]),NULL);
}

在C#中,之前没有声明过。我认为在C中也是如此(或者可能是编译器中的错误)。

5 个答案:

答案 0 :(得分:7)

for (int i = 0; i < (cantenemigu * 3); i += 3)

;之后不应该有i += 3

答案 1 :(得分:2)

摆脱第3 ;

for(int i = 0; i < (cantenemigu * 3); i += 3) 

答案 2 :(得分:2)

尝试将代码更改为:(请注意我所做的是将i的声明移到for循环之外。

int cantenemigu = 3;
var posenemigu[] = {-900, 550, -10, -1100, 1600, -10, 70, 1680, 20};
void load_enemigunan(){ 
    int i;
    for(i = 0; i < (cantenemigu * 3); i += 3){
         ent_create("targetr.mdl",vector(posenemigu[i],
             posenemigu[i + 1],
             posenemigu[i + 2]),NULL);
     } 
}

答案 3 :(得分:1)

您的vector来电看似错过了一个右括号。

ent_create(
    "targetr.mdl",
    vector(
        posenemigu[i], 
        posenemigu[i + 1], 
        posenemigu[i + 2],
        NULL
);

答案 4 :(得分:0)

for(int i = 0; i < (cantenemigu * 3); i += 3;) 

错误是什么?最后一个分号不应该在那里。

循环的主体是什么?

什么类型的变量是cantenemigu?是否可以强制执行int