| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2904 人关注过本帖
标题:[求助]输入一个正整数,求位数
取消只看楼主 加入收藏
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
 问题点数:0 回复次数:7 
[求助]输入一个正整数,求位数
输入1到5位的正整数求位数,不管输入什么都是"input wrong",看不出来毛病
main()
{
int bit;
long num;
scanf("num=%ld",&num);
if(num<1||num>99999)
printf("\ninput wrong");
else
{ if(num>9999) bit=5;
else if(num>999) bit=4;
else if(num>99) bit=3;
else if(num>9) bit=2;
else bit=1;
printf("\nbit=%d",bit);
}
}
搜索更多相关主题的帖子: 整数 位数 输入 
2006-02-19 15:49
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
得分:0 

但是if是顺序执行的啊,如果能执行到else if(num>9) bit=2;这里怎么可能是1547啊

重写了一个还不对路
main()
{
int bit;
long doc,num;
bit=5;
doc=10000;
scanf("num=%ld",&num);
while(num<doc&&doc>=10)
{bit=bit--;doc/=10;}
printf("\nbit=%d,%d",bit,doc);
}

2006-02-19 16:29
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
得分:0 
好痛苦啊,想了2个小时了
2006-02-19 17:35
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
得分:0 
以下是引用Fjcyz在2006-2-19 17:56:00的发言:
scanf("num=%ld",&num);

这个语法错误. scanf("%ld",&num);

..........................................
我无语了,杂就看不到捏,想捶自己一顿
编译也不提示
5555555555白白浪费时间

2006-02-19 18:09
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
得分:0 
哈哈搞定了,不用数组好麻烦,不过还是有问题,超出范围提示divide error,怎么会事啊
main()
{
int bit,i,j,k,a;
long num,numb,doc;
float b;
scanf("%ld",&num);
numb=num;
if(num<1||num>99999)
printf("\ninput wrong");
else
{ if(num>9999) bit=5;
else if(num>999) bit=4;
else if(num>99) bit=3;
else if(num>9) bit=2;
else bit=1;
printf("\nbit=%d\n",bit);
}
for(i=1;bit>1;bit--)
i*=10;
do{
doc=num/i;
printf("%4d",doc);
num=num-i*doc;
i/=10;
}
while(i>=1);
printf("\n");
for(;numb>=1;)
{printf("%4d",numb%10);
numb=numb/10;}
}
2006-02-19 20:51
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
得分:0 
以下是引用feng1256在2006-2-19 21:45:00的发言:
除10嘛。直到结果等于0,除的次数就是位数
要打印数字的话顺便存数组里

晕,我脑袋有点不灵光啊
这办法太妙了

2006-02-19 21:51
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
得分:0 
以下是引用限量版猪头在2006-2-19 22:35:00的发言:

include<stdio.h>
main()
{
int n,k,i=1;
scanf("%d",&n);
k=n/2;
while ((k)!=1)
{
k=k/2;
i++;
}
i++;

printf("\n%d\n",i);
}


运行不了啊,/2的次数能判断位吗?
比如64要/2多少次啊,

2006-02-19 23:23
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
得分:0 
还是看不懂啊
2006-02-20 15:13
快速回复:[求助]输入一个正整数,求位数
数据加载中...
 
   



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

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