在抗日游击战中,战士们在山路上布置了 10 个陷阱。代码用于计算陷阱捕获敌人的总数。当遇到陷阱被彻底破坏(用-99表示)时,停止后续所有计数。此外,如果有陷阱被野兽误触发(用-1表示),不仅该陷阱无法捕获敌人,还会导致紧接着它的下一个陷阱失效(捕获数变为0)。关于程序的最终运行结果,下列说法正确的有?
#include <iostream>
using namespace std;
int main()
{
int total = 0; // 捕获敌人总数
int valid_traps = 0; // 成功捕获到敌人的陷阱个数
int traps[10] = {2, 3, -1, 5, 0, -99, 4, 1, 2, 3};
for (int i = 0; i < 10; i++)
{
if (traps[i] == -99)
{
break;
}
if (traps[i] == -1)
{
traps[i + 1] = 0;
continue;
}
if (traps[i] > 0)
{
total += traps[i];
valid_traps++;
}
}
cout << valid_traps;
return 0;
}
程序最终计算出捕获敌人的总数(total)为 5
程序运行结束后,成功捕获到敌人的陷阱个数(valid_traps)为 3
代码执行过程中,数组元素 traps[3] 的值被修改为了 0
遇到 break 跳出循环时,循环变量 i 的值为 5