| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1099 人关注过本帖
标题:C问题关于判断整数和小数的问题
只看楼主 加入收藏
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
结帖率:96.67%
收藏
已结贴  问题点数:20 回复次数:15 
C问题关于判断整数和小数的问题
写一个程序段,允许用户输入值并显示出输入的整数值和带小数部分的值的数量。以0作为标记值的标记控制循环
我编的有什么问题啊
#include<stdio.h>
int main()
{
    double num;
    int integer_num = 0,
        decimal_num = 0;
    scanf("%f", &num);
    while(num!=0)
    {    scanf("%f", &num);
        if(num != (int)num)
        {
            integer_num=integer_num+1;
            decimal_num=decimal_num+1;
        }
        else
            integer_num=integer_num+1;
   
    }
printf("the integer_num is %d\n", integer_num);
printf("the decimal_num is %d\n", decimal_num);

return(0);
}
搜索更多相关主题的帖子: 小数 整数 判断 
2010-09-28 18:36
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
等解新手
2010-09-28 18:42
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:0 
没理解你的意图,什么叫“显示出输入的整数值和带小数部分的值的数量”
值的数量是一个什么概念啊。
2010-09-28 19:18
jiangkunhgnc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:76
专家分:185
注 册:2010-8-21
收藏
得分:0 
使用math.h的库函数!
判断该数的整数部分和小数部分是否相等,然后记录!
2010-09-28 19:39
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:0 
不知lz是不是这个意思啊    比如输入的是
231.12
23.12
0
 那么答案就是integer_num=6,decimal_num=4,如果是这个意思的话似乎就是while循环的问题了
lz while实现的功能好像是当输入的数为小数时integer_num和decimal_num各+1,整数时则integer_num+1,也就是说while循环实现了计算有几个小数和总共输入了几个数(整数+小数+1(最后输入的那个0))
即假设输入的分别是
20.12
34.15
10
0

integer_num=4(总共输入4个数)
decimal_num=2(总共两个小数)



[ 本帖最后由 zzgzzg00 于 2010-9-28 21:41 编辑 ]

粗心是大敌
2010-09-28 21:31
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
我的这个程序printf函数不管用啊,我的意思是输入的数是整数integer_num加一,小数decimal_num加一,当输入的数为零的时候结束程序,输出个数统计,我编的不知哪里错了
2010-09-28 23:48
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
回复 3楼 erikyo
你想复杂了,就是分别统计一下整数和小数的个数,当输入是0的时候,结束循环。
2010-09-28 23:51
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
回复 5楼 zzgzzg00
我的意思是分别统计一下输入的整数与小数,输入为零的时候结束循环
例如1
    2.2
    3
    3.2
    0
那么输出integer_num is 1
        decimal_num is 2
我的不知怎么搞的,不行啊
2010-09-28 23:56
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
#include<stdio.h>
#include<math.h>
int main()
{
    double num = 1;
    int integer_num = 0,
        decimal_num = 0;
    while(num!=0)
    {
        scanf("%f", &num);
        if(fabs(num - (int)num) > 1e-4)
        {
            decimal_num=decimal_num+1;
        }
        else
            
integer_num=integer_num+1;
   
    }
    printf("the integer_num is %d\n", integer_num);
    printf("the decimal_num is %d\n", decimal_num);

    return 0;
}


[ 本帖最后由 御坂美琴 于 2010-9-29 00:06 编辑 ]

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-09-29 00:04
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:0 
#include<stdio.h>
int main()
{
    double num;
    int integer_num = 0,
        decimal_num = 0;
    scanf("%f", &num);
    while(num!=0)
    {    scanf("%f", &num);
        if(num != (int)num)
        {
            integer_num=integer_num+1;去掉这行,既然输入的是小数,干嘛让整数+1啊
            decimal_num=decimal_num+1;
        }
        else
            integer_num=integer_num+1;
   
    }
printf("the integer_num is %d\n", integer_num);
printf("the decimal_num is %d\n", decimal_num);

return(0);
}
还有好像最后让循环推出的0也让integer_num+1,要不让integer_num初始为-1,或者试试楼上的方法

粗心是大敌
2010-09-29 08:40
快速回复:C问题关于判断整数和小数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018091 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved