全部问题 > 当前问题

浮点类型11题double(3/2)不是=1.5么?int1.99*2=int(3.98)=3?

没明白题怎么解答的


venico 2016-3-27 20:48:32

共 3 个回答

初一 2016-3-27 21:14:49

double (3/2)  先算(3/2)的值是1 然后前面有个double是1.0  不是1.5   / 是整数舍去小数部分  然后再加上0.5才是1.5 

 再加上(int)1.99*2  也就是1*2      最后是(int)(1.5+2)  int(3.5)=3

初一 2016-3-27 21:15:35

(int) 也是舍去小数部分 变成整的

对面 2016-3-28 16:30:00

EEEEEE额

仔细看看解析

多看几遍视频

看还不行有些得做笔记,没事拿出来看看

问题来自: 浮点类型
以下程序运行后的输出结果是 __【6】__ 。
#include <stdio.h> 
main()
{ int a;
  a=(int)((double)(3/2)+0.5+(int)1.99*2);
  printf("%d\n",a);
}
A. 3
B. 4
C. 5
D. 6
答案:A
解析:a=(int)((double)(3/2)+0.5+(int)1.99*2) =(int)((double)1+0.5+(int)1.99*2) =(int)(1.5+1*2) =(int)(1.5+2) =(int)(3.5) =3 因此答案为3。