双精度和整数的求和和乘法不起作用

sum and multiply of doubles and ints does not work

我用 C 写了这段代码:

 double x1 = 7.52, x2 = 7, x3 = 8;
 int m = 0;
 double sum = x1 + x2*m + x3*m*m;

 printf("%lf", m, sum);

但无论我更改了 m 的值,总和始终为 0..

为什么不能正常计算?

谢谢

因为您正在打印 m,即 int"%lf" 说明符用于 double

而且你传递给 printf() 的参数也比格式说明符多,这意味着你没有启用编译器警告,你应该,特别是如果你是初学者。

改变这个

printf("%lf", m, sum);

printf("m   = %d\nsum = %f\n", m, sum);

看看我的意思。

实际上您正在打印 m -

的值
 printf("%lf", m, sum);  

你必须打印 -

 printf("%lf",sum);