if多分支只有一个else的
if(...) { } else if(...) { } else { }
15行if和19行else构成一个块了。25行的else当然没有与之匹配的if。建议改成if(p==4)else if(p==3)else if(p==2)else形式
把前两个else的花括号去掉