本题为什么快读会t11,12,scanf能过

P2863 [USACO06JAN] The Cow Prom S

@[hualuoyan2](/user/803851) 快读挂了。 ``` while(ch<'0'||ch>'9') if(ch=='-') f=-1,ch=getchar(); ``` 改成 ``` while(ch<'0'||ch>'9'){ if(ch=='-') f=-1;ch=getchar();} ```
by xiaozengX @ 2024-03-09 09:36:36


@[xiaozengX](/user/321529) 谢谢佬,不过带不带括号区别在哪?
by hualuoyan2 @ 2024-03-09 09:38:18


@[hualuoyan2](/user/803851) 因为你那个 ```cpp ch=getchar(); ``` 在前面是逗号的情况下只有在 if 成立的情况下才能被运行 所以你的代码等效于 ```cpp while(ch<'0'||ch>'9'){ if(ch=='-'){ f=-1;ch=getchar(); } } ```
by xiaozengX @ 2024-03-09 09:40:58


@[xiaozengX](/user/321529) 受教了,谢谢
by hualuoyan2 @ 2024-03-09 09:43:22


|