标题:关于统计实数位数的一个程序问题!
只看楼主
guo5520
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2010-3-2
结帖率:100%
已结贴  问题点数:10 回复次数:2 
关于统计实数位数的一个程序问题!
做了一个统计实数位数的程序,如下
#include<stdio.h>
int main()
{
    int n1,n2,a,b;
    double num;
    printf("请输入一个实数:");
    scanf("%lf",&num);
    n1=n2=0;
    if(num<0)
        num=-num;
    a=(int)num;
    printf("\n%d\n",a);
    do{
        a=a/10;
        n1++;
    }while(a!=0);

    b=(int)num;
    while(num>b){
        num=num*10;
        b=(int)num;
        n2++;
    }

    printf("该实数一共有%d位数\n\n",n1+n2);

    return 0;
}

该程序可以编译,就是无法运行,我把第二个while语句删除之后,程序就可以运行了,,第二个while有什么错,各位帮帮忙,给小弟讲讲!
搜索更多相关主题的帖子: 统计 实数 位数 
2010-04-13 11:56
共饮长江水
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:47
注 册:2010-3-16
得分:10 
上一个while循环计算出大于1的数位个数可以用强制转换
小于1的数位数字再转换成int型数据就会丢失
2010-04-13 12:30
guo5520
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2010-3-2
得分:0 
回复 2楼 共饮长江水
也许是我编译器的问题,我今天早上运行这个程序,结果,可以用,我一个字符都没有改!!!
可是我昨天试了好半天,,,哎!!!
2010-04-14 09:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-302780-1-1.html




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

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