| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2666 人关注过本帖
标题:利用C语言编程:判断一个整数有多少位数。
只看楼主 加入收藏
langqicheng
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-10-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:12 
利用C语言编程:判断一个整数有多少位数。
比如:我输入1000,就会显示4  我输入100就会显示3  我输入10 就会显示2  输入1就会显示1   就是简单来说就是判断这个整数有多少位。但是有一个条件就是用IF ELSE来编程。
#include <stdio.h>
int main( )
{

 int N;
 int Q=1;
 int X=10;
 printf("the number is :\n");
 scanf("%d",&N);
 if (N<X)

   printf("%d\n",Q);

  else
  {
   X=X*10;
   Q=Q+1;
   if (N<X)
   printf("%d\n",Q);
   }


  getch();
  return 0;
}
我这样编程后,永远结果只是2.求解救
搜索更多相关主题的帖子: include number C语言 
2013-10-17 22:22
l66668888
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-9-21
收藏
得分:3 
#include<stdio.h>
int main()
{
  int N;
  int Q=1;
  int X=10;
  printf("the number is:\n");
  scanf("%d",&N);
  if(N<X)
      printf("%d\n",Q);
  else
  {
      while(N>=X)
      {
         N=N/10;
         Q=Q+1;
         
      }
      printf("位数为:%d\n",Q);
  }

  return 0;
}
2013-10-17 22:46
may大象
Rank: 2
等 级:论坛游民
帖 子:55
专家分:38
注 册:2013-5-30
收藏
得分:3 
主要错误:那个x=x*10应该是x=x/10.赞成2楼

                             凡成大事者,各有各的方法论。
2013-10-17 22:55
dsy风飘雪
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2013-9-3
收藏
得分:3 
主要是你无循环语句,二楼的while就是循环语句,当然你找整数的位数方法也错了。
2013-10-17 23:50
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:3 
X=X/10;
2013-10-18 00:05
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:222
专家分:524
注 册:2011-10-26
收藏
得分:3 
#include<stdio.h>
main()
{
    int m,cnt=0;
    printf("请输入一个整数:");
    scanf("%d",&m);
    while(m>0)
    {
        m/=10;
        cnt++;
    }
    printf("输入的整数的位数是:%d\n",cnt);
}
2013-10-19 22:47
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:222
专家分:524
注 册:2011-10-26
收藏
得分:0 
因为负整数也是整数,因此上面的代码当输入的数是负整数时,程序运行错误。因此修改一下为:


#include<stdio.h>
#include<math.h>
main()
{
    int m,cnt=0;
    printf("请输入一个整数:");
    scanf("%d",&m);
    m=abs(m);  /* 即求一个整数的绝对值 */
    while(m>0)
    {
        m/=10;
        cnt++;
    }
    printf("输入的整数的位数是:%d\n",cnt);
}
2013-10-19 22:54
lsh496100
Rank: 2
等 级:论坛游民
帖 子:14
专家分:23
注 册:2013-10-16
收藏
得分:3 
回复 6楼 xp0213
高手
2013-10-19 23:24
sgq1230
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2013-10-16
收藏
得分:3 
#include<stdio.h>
int main()
{
    int a,i=1;
    printf("请输入一个整数:");
    scanf("%d",&a);
    while(a>=10)
    {
        i++;
        a=a/10;
    }
    printf("位数为:%d\n",i);
    return 0;
}
2013-10-19 23:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
printf()到字符串(用sprintf()系函數)之後數字符數即可。

授人以渔,不授人以鱼。
2013-10-19 23:49
快速回复:利用C语言编程:判断一个整数有多少位数。
数据加载中...
 
   



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

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