加入收藏 设为首页 帮助中心
 
论坛首页
用户登录 | 用户注册 | 最新悬赏 | 最新贴子 | 会员中心 | 贴子搜索 | 网站地图 | 帮助中心 | 联系我们
站内搜索:
现在位置 > 维库电子开发网论坛 > 嵌入式系统/ARM技术 > 关于C语言的一道问题!
帖子主题: 关于C语言的一道问题!
你还没有登录,无法发表回复,请首先 登录.. [注 册]
积分:1782 火花
发表于:2008-4-29 9:09:00 楼主
级别:二钻
积分:1782分
注册:2007年11月12日
程序如下:

  #include <stdio.h>

int main(void)
{
  int i;
   while( scanf("%d",&i)==0)
   {scanf("%d",&i);}  
 
    printf("i=%d"i);
   
    return 0;
}

问题 如果输入 12.9 得到12 
    如何作好判断机制 完成 小数的排除  

  希望是::::输入 12.9 返回重新输入   

谢谢!
 
积分:1044 骑士精神
发表于:2008-4-29 9:15:00 1 楼
级别:一钻
积分:1044分
注册:2007年11月10日
这问题和好说typeof你可以check一下你输入的书的类型呀 你再看看
 
积分:1852 shaoqingmei
发表于:2008-4-30 9:00:00 2 楼
级别:三钻
积分:1852分
注册:2007年11月09日
转化成字符串判断有没有.  
积分:1568 美丽的谎言
发表于:2008-5-4 8:51:00 3 楼
级别:二钻
积分:1568分
注册:2007年11月09日
#include  &lt;stdio.h&gt; 

int main(void) 

  float i; 
   while( scanf('%f',&amp;i)!=EOF) 
   {
    scanf('%f',&amp;i);}   
    if(i!=(int)i)  continue;
    printf('i=%d'i); 
   }
    return 0; 

 
积分:1302 yuanjiuqiang
发表于:2008-5-5 9:07:00 4 楼
级别:二钻
积分:1302分
注册:2007年11月19日
一个数的浮点形式(设基数是2)可写成:
                    N = M × 2E
    其中:M代表尾数,E代表阶码。

    计算机中浮点数只用尾数和阶码表示,其形式如下:
    

    阶码 尾数符号 尾数 

    浮点数的精度由尾数决定,数的表示范围由阶码的位数决定。

   为了最大限度提高精度,尾数采用规格化形式,既1/2≤M &lt;1。采用二进制表示时,若尾数大于零,则规格化数应该是01XXXX的形式;若尾数小于零,则规格化数应为10XXXX的形式。
 
积分:1650 爱你的理由
发表于:2008-5-6 9:30:00 5 楼
级别:二钻
积分:1650分
注册:2007年11月10日

#in....
class A
{
   private:
   int  value;
   public:
      print(int n){ value = n; cout &lt; &lt;'ok' };
      print(float n){cout &lt; &lt;'n is float' &lt; &lt;endl;};
};
int main()
{  A a
   a.print(n);

 

 
积分:1782 火花
发表于:2008-5-7 9:17:00 6 楼
级别:二钻
积分:1782分
注册:2007年11月12日
int类型的 怎么 判断啊  如果输入是12.9  想要 的是整型  怎样返回从新输入  
积分:1542 蓝色生死恋
发表于:2008-5-9 9:37:00 7 楼
级别:二钻
积分:1542分
注册:2007年11月12日
#in....
class A
{
   private:
   int  value;
   public:
      print(int n){ value = n; cout &lt; &lt;'ok' };
      print(float n){cout &lt; &lt;'n is float' &lt; &lt;endl;};
};
int main()
{  A a
   a.print(n);

 
 
积分:1200 樱之花
发表于:2008-5-10 9:08:00 8 楼
级别:二钻
积分:1200分
注册:2007年11月14日
<DT>C/C++ code <DD>
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> #include &lt;stdio.h&gt; int main() { float i; while(scanf('%f',&amp;i)!=EOF) { if(i!=(int)i) { printf('重新输入\n'); continue; } printf('i=%d\n',(int)i); } return 0; }
</DD>
 
积分:884 你的选择
发表于:2008-5-12 8:53:00 9 楼
级别:一钻
积分:884分
注册:2007年11月10日

真是高手如云啊!

 
积分:1516 一个人的精彩
发表于:2008-5-13 9:17:00 10 楼
级别:二钻
积分:1516分
注册:2007年11月14日
设计思路就有问题
如果用户不小心输入了浮点数
那就应该只读入整数部分就可以了
没必要重新输入
程序应当为用户着想

再说了,scanf的%d参数就只能将整数部分输入到i中
用scanf不如用字符串处理方便直接
 
积分:1516 一个人的精彩
发表于:2008-5-13 9:17:00 11 楼
级别:二钻
积分:1516分
注册:2007年11月14日
以小数点来判断浮点数... 

C/C++ code#include  &lt;stdio.h&gt;

int main()
{
    char str[20];
    int flag = 0;
    int v;
    while(1)
    {
        flag = 0;
        scanf('%s',str);
        for(int i = 0; str[i] != '\0'; ++i)
        {
            if(str[i] == '.')
            {
                flag = 1;
                break;
            }
        }
        if(flag == 0)
     …
 
积分:1302 yuanjiuqiang
发表于:2008-5-14 9:01:00 12 楼
级别:二钻
积分:1302分
注册:2007年11月19日
lz把它先放到一个字符串中,然后判断字符串中是否有小数点,ok!  
积分:1364 风的承诺
发表于:2008-5-19 9:30:00 13 楼
级别:二钻
积分:1364分
注册:2007年11月23日
读入一个整数,一个字符...
读入1.111时是将1作为整数n的值,'.'视为一个字符被c读入,下次读时使用fflush清空标准输入缓冲中的字符,'.'后的字符被忽略
如果紧跟在整数后的字符不是'\n'回车,则继续循环
如果输入111加一个空格再回车,此时111也将不算是整数,因为整数后跟的字符不是回车...
 
积分:1452 冬天的雪花
发表于:2008-5-20 9:31:00 14 楼
级别:二钻
积分:1452分
注册:2007年11月10日
楼主考虑下把输入的浮点数强制转换乘整型的不就行了么?  
快速回复:
用户名: 密码: