回 帖 发 新 帖 刷新版面

主题:请高手指教

这有两道题我做出来的答案和给的答案就是不一样,但我不知道是那错了?请高手指教!!谢谢!!
题为:
1.main()
{
  int i=1,j=2,k=3;
  if(i++==1&&(++j==3||k++==3))
  printf("%d %d %d\n",i,j,k);
 }
求输出地结果:
(A) 1 2 3   (B)2 3 4    (C)2 2 3     (D)2 3 3
2.main()
{
   int  i=1,j=1,k=2;
   if((j++||k++)&&i++)
   printf("%d,%d,%d\n",i,j,k);
}
求输出地结果:
(A)1,1,2   (B)2,2,1    (C)2,2,2     (D)2,2,3
请高手指教!感激不尽!!谢谢!!

回复列表 (共2个回复)

沙发

编译运行一下就行了
注意&&和||的短路问题
a && b,a 假则不计算b了
a || b, a 真 就不计算b了

板凳

哦!对对!我把短路问题忘了!呵呵,谢谢你哦!!
[em12]

我来回复

您尚未登录,请登录后再回复。点此登录或注册