/* Part3 演習問題3 */
#include <stdio.h>

int main(void)
{
  int a,b,c,d,e ;
  int x,y,z ;

  a=12 ;
  b=6 ;
  c=45 ;
  d=3 ;
  e=7 ;

  x = a*b + c/d + e ;
  y = (a*b) + (c/d) + e ;
  z = a * (b+c)/(d+e) ;

  printf("x=%d y=%d z=%d\n",x,y,z) ;

  return(0) ;
}


x=94 y=94 z=61

  1. 変数xにはカッコなしの計算結果を代入した.本計算では,算術演算子の優先順位に従い「a*b」および「c/d」の計算をまず実行し,ついてこれらの結果およびeの加算を実行する.よって,変数xには94が代入される.
  2. 変数yにはカッコつきの計算結果を代入した.本計算では,算術演算子の優先順位を守ったカッコを挿入しているため,変数xの値と同じ結果94が代入される.
  3. 変数zもカッコつきの計算結果を代入した.本計算では,まず「b+c」および「d+e」の計算を実行し,ついで「b+c」の値とaの乗算を実行し,この結果を「d+e」で除算する.よって,「12*51/12」の結果,すなわち61が代入される.余りの2は切り捨てられる.