A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王海江1 中级黑马   /  2014-6-6 17:32  /  1093 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王海江1 于 2014-6-13 22:27 编辑

看到一道判断题,大家来分析一下吧:
当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
对还是错??
求详解:

4 个回复

倒序浏览
可以使是的
如下面的代码:
第一组输入 :
当输入 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. }
复制代码
回复 使用道具 举报 1 0
错。因为编译器会将数据向高字节的转换,但是可能会失去精度
回复 使用道具 举报
呀嘛咕 发表于 2014-6-7 00:55
可以使是的
如下面的代码:
第一组输入 :

大牛,实在不好意思,太复杂了没明白
回复 使用道具 举报
大龄产妇 来自手机 中级黑马 2014-6-10 23:51:53
报纸
在用scanf输入的时候中间加个getchar()试试,把输入缓存区的/n取走就没问题了 再或者 加空格。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马