title: Output unexpected
body: <pre><code>#include&lt;stdio.h&gt;
  #define MAX(a,b) ((a)&gt;(b))?(a):(b)
  int main()
  {
      double a = 100 , b, c, e;
      int d = -1;    
      b = 336;
      c = -33.600000000000001;
      e = a + (MAX(b, abs(c)) * d);
      printf("max is %f", e);
      return 0;
  }
  </code></pre>
  
  <p>Output of this program is 436 whereas logically it should be  -236 . Can anyone explain me why output of this program is varying.</p>