-1

将此表达式更改为后缀表示然后对其进行评估..我得到 17.8 作为答案..如果“n”本来是浮点类型,那么答案没有问题。因为 n 是整数类型的变量,所以小数点后的数字应该被截断,答案应该是 17,但输出是 15。如何?

#include<stdio.h>
int main()
{

int i=3,a=4,n;
float t =4.2;
n=a*a/i+i/2*t+2+t;
printf("n = %d\n",n);
return(0);
}
4

1 回答 1

0

我得到 17.8 作为答案。如果“n”是浮点类型,那么答案没有问题。

不,你不能。如果你17.833332的表达是

n=a*a*1.0/i+i/2.0*t+2+t;  

看:

a*a/i = (4*4)/3 = 16/3 = 5 
i/2*t = (3/2)*4.2 = 1*4.2 = 4.2
2 + t = 2 + 4.2 = 6.2  

5 + 4.2 + 6.2 = 15.4这将被截断为15.

于 2014-06-14T11:43:23.563 回答