黑马程序员技术交流社区

标题: 判断题,求详解 [打印本页]

作者: 王海江1    时间: 2014-6-6 17:32
标题: 判断题,求详解
本帖最后由 王海江1 于 2014-6-13 22:27 编辑

看到一道判断题,大家来分析一下吧:
当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
对还是错??
求详解:
作者: 呀嘛咕    时间: 2014-6-7 00:55
可以使是的
如下面的代码:
第一组输入 :
当输入 1.1   2 时
输出 1 0.100000
这就说明 n=1 m=.1(0.100000) 而2根本没有进去

第二组输入也是一样的
当输出  2   1.1 时

m = 2.000000 n=1 后面的.1不会输入进去了

  1. #include"iostream"
  2. using namespace std;

  3. int main()
  4. {
  5.         int n;
  6.         double m;
  7.         //第一组输入
  8.         scanf("%d %lf",&n,&m);
  9.        
  10.         printf("%d %f",n,m);
  11.         //第二组输入
  12.         scanf(" %lf %d",&m,&n);
  13.        
  14.         printf("%f %d ",m,n);
  15.        
  16.         return 0;
  17. }
复制代码

作者: 魑魅魍魉121    时间: 2014-6-8 09:36
错。因为编译器会将数据向高字节的转换,但是可能会失去精度
作者: 王海江1    时间: 2014-6-10 22:41
呀嘛咕 发表于 2014-6-7 00:55
可以使是的
如下面的代码:
第一组输入 :

大牛,实在不好意思,太复杂了没明白
作者: 大龄产妇    时间: 2014-6-10 23:51
在用scanf输入的时候中间加个getchar()试试,把输入缓存区的/n取走就没问题了 再或者 加空格。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2