运行时错误 - 除零
我有一个运行时问题,当我调试我的脚本。运行时错误 - 除零
它说:
Unhandled exception at 0x002a4f8e in test2.exe: 0xC0000094: Integer division by zero.
虽然有问题的线是兰特数生成。
if((rand() % miss) < 3){ //line 40
int phit = (rand()% hit);
} else {
bool pmiss = true;
}
调试器在第40行停止时出现错误(我在上面标记)。
我完整的脚本是在这里: http://www.paste.to/MzQ1ODM1
我应该如何写的if语句,如果这会导致这样的错误,我一直在想喜欢它v.frustrating适应一个PHP程序员!
您在第30行重申声明miss
。如果声明为,那么该变量将在的本地。 因此,全球miss
仍将具有零值。拿出所有那些int
,还有bool
里面的if
声明!就像这样:
if(user_weapon == 'k'){
miss = 5;
hit = 5;
} else if(user_weapon == 'b'){
miss = 2;
hit = 3;
} else {
invalid = true;
}
%(模数)是除法的余数。所以你把a除以b得到余数。如果b是0(就像这种情况),你会得到一个错误。
0除法是非法的,会导致宇宙干扰(或代码崩溃)。
尝试将变量设置为其他值。
我附上我的完整脚本 - 变量设置的时刻之前,这就是为什么我不明白它没有设置的原因... – Sir 2012-03-04 02:02:56
if语句可能是越野车,尝试在开始时将其设置为9999999并告诉我如果修复它(暂时) – 2012-03-04 02:03:23
线29和32应该是
miss = 5
miss = 2
您声明里面一个新的局部变量小姐,如果范围,这意味着你不能改变一个第6行
相反,那些局部变量与if一起死亡,但它们不会更改第6行上的var。因此第6行上的var保持为0,并且这两个死亡。解决方案是一样的 – 2012-03-04 02:06:18
声明问题几乎可以肯定,'miss'等于零。 – 2012-03-04 01:58:16
“miss”的价值是什么? – 2012-03-04 01:58:34
@OliCharlesworth我附上了一个链接到我的完整脚本。我在if语句中得到一个值...但是我全局设置变量=/ 值缺失为5或至少应该是。 – Sir 2012-03-04 01:59:02