#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