请仔细检查哪里越界了。
我在相加之前判是否无法到达:
int xx=x,yy=y; if(Abs(x)>sum||Abs(y)>sum)return printf("No"),0; x=xx+yy;y=yy-xx;
而实际上应该是这样的:
int xx=x,yy=y; x=xx+yy;y=yy-xx; if(Abs(x)>sum||Abs(y)>sum)return printf("No"),0;