求大神赐教啊啊啊,拜托啦,说明过程,谢谢

2024-12-16 01:14:47
推荐回答(1个)
回答1:

# include
void main() {
int i,j;
float a,b;
char c;
long m,n;
i=5;
j=-3;
a=25.5;
b=3.0;
m=a/b;
n=m+i/j;
printf("%d\n",n);
}

实际运行的结果是7。(不考虑vs中需要加system("pause")的情况)
至于为什么?很简单,m和n都是长整型变量,a/b的结果是8.5,给m赋值后,由于类型转换,被截断为8。
i/j的结果是-1.666666666666667,但由于i和j都是整形变量,所以i/j的结果被直接截断为-1。
所以m+i/j的结果是7,给n赋值,再用printf语句显示n的值,结果自然就是7了。