因为if没有加else而WA

P1563 [NOIP2016 提高组] 玩具谜题

```cpp if(a==A[loc].face) { if(loc-b<1) { loc=loc+(n-b); } else { loc=loc-b; } } else if(a!=A[loc].face) { if(b+loc>n) { loc=loc-(n-b); } else { loc=loc+b; } } } ``` 这里的else if只要没有加else就会wa,但是这两个不是独立开判断的嘛?没有看懂
by acahv @ 2021-08-22 07:49:27


@[acahv](/user/557887) 哇大哥您很努力但也请早点睡
by whoam @ 2021-08-22 07:51:04


@[cyc0916](/user/549418) 靠,怎么知道我没睡觉
by acahv @ 2021-08-22 07:52:02


@[acahv](/user/557887) 因为在第一个 `if` 中,`loc` 已经改变了
by 阿丑 @ 2021-08-22 08:17:24


@[acahv](/user/557887) 在第一个if里,$loc$ 会受到改变,导致可能出了第一个if后会再次进入第二个if,导致答案错误 还有其实可以不用else if, 另外洛谷上可以查看他人的提交记录,可以看到你刷了一夜题,加油继续努力吧!
by Lonely_Christmas @ 2021-08-22 08:21:43


@[acahv](/user/557887) 草 您4点发了个帖
by whoam @ 2021-08-22 15:23:12


@[fanglong](/user/241520) 谢谢dalao!我会加油的
by acahv @ 2021-08-22 22:04:57


@[阿丑](/user/364963) 谢谢dalao!
by acahv @ 2021-08-22 22:05:13


好,好,好,好长的代码!
by 许多 @ 2021-08-24 10:09:40


|