将此表达式更改为后缀表示然后进行评估..我得到17.8作为答案..如果" n"本来是浮动类型然后回答没有问题。因为n是整数类型的变量,所以十进制oint之后的数字应该被截断,而答案应该是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);
}
答案 0 :(得分: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
。