#include<stdio.h>
#define MAX(a,b) ((a)>(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;
}
該程序的輸出是436,而邏輯上它應該是-236。任何人都可以解釋爲什麼這個程序的輸出是變化的。輸出意外
將'fabs'用於浮點絕對值。 – 2014-09-03 07:50:33