| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2902 人关注过本帖
标题:[求助]输入一个正整数,求位数
只看楼主 加入收藏
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
Fjcyz
Rank: 2
等 级:论坛游民
威 望:1
帖 子:175
专家分:25
注 册:2006-2-6
收藏
得分:0 
if(num<1||num>99999)
printf("\ninput wrong");
else
{ .... 这个大括号应该包括到最后 }

最好的域名、虚拟主机、VPS  www.
2006-02-19 21:15
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
除10嘛。直到结果等于0,除的次数就是位数
要打印数字的话顺便存数组里

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-19 21:45
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
得分:0 
以下是引用feng1256在2006-2-19 21:45:00的发言:
除10嘛。直到结果等于0,除的次数就是位数
要打印数字的话顺便存数组里

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

2006-02-19 21:51
限量版猪头
Rank: 2
等 级:论坛游民
威 望:1
帖 子:165
专家分:30
注 册:2006-2-5
收藏
得分:0 

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);
}

[此贴子已经被作者于2006-2-19 22:42:23编辑过]


2006-02-19 22:35
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
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

#include <stdio.h>
void main()
{
int n,count=0;

scanf("%d",&n); /*输入超出范围未考虑*/

do{
n=n/10;
count++;
}while(n!=0);
printf("count=%d\n",count);

getch();
}


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-20 00:33
限量版猪头
Rank: 2
等 级:论坛游民
威 望:1
帖 子:165
专家分:30
注 册:2006-2-5
收藏
得分:0 
以下是引用zqj417在2006-2-19 23:23:00的发言:

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

不好意思~昨天晚上网络出了问题~我们学校又要断电。。我没改。。
看下面这个:
include<stdio.h>
main()
{
int n,k,i=1; //也可以把n设为无符号的整型
scanf("%d",&n);
if (n>1)
{
k=n/2;
while ((k)!=1)
{
k=k/2;
i++;
}
i++;
}
else if ((n>=0)&&(n<=1)) i=1;
printf("\n%d\n",i);
}


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



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

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