| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 26534 人关注过本帖, 1 人收藏
标题:如何求一个整数的位数?
只看楼主 加入收藏
qjunshen
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-5-11
收藏
得分:0 
题目是这样的:请输入一个5位以内的整数,要求求出这们数的位数和每个位上的数值大小,并按逆序排列输出!
2010-09-13 10:52
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
直接itoa一下
然后在strlen一下
接着倒过来就是了
收到的鲜花
  • jack101412010-09-13 11:24 送鲜花  5朵   附言:我很赞同
2010-09-13 11:01
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
回复 12楼 hahayezhe
12楼方法最直观!!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-13 11:23
mysky2001
Rank: 2
等 级:论坛游民
帖 子:10
专家分:18
注 册:2010-5-22
收藏
得分:0 
#include<stdio.h>

int main()
{
    int m , k = 0;
    printf("请输入一个整数:");
    scanf("%d",&m);
    for( ; m % 10 >= 1 || m / 10  ; m = m / 10) k ++;
    printf("%d\n",k);
   
    return 0;
}
2010-09-14 16:41
starjun14
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:266
专家分:136
注 册:2009-4-26
收藏
得分:0 
学习~学习~~
2010-09-14 17:07
大神
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2010-9-14
收藏
得分:0 
#include <stdio.h>
int main()
{
 int i=0,x;
 printf("输入整数x:");
 scanf("%d",&x);
 while(x!=0)
 {
  x=x/10.0;
  i++;
 }
 printf("%d",i);
 printf("\n");
}
2010-09-14 17:39
大神
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2010-9-14
收藏
得分:0 
以下是求位数,和按个十百的顺序输出的代码,我只会这么一点,不好意思了



#include <stdio.h>
int main()
{
 int i=0,x,j,temp,Y;
 printf("输入整数x(0<x<6):");
 scanf("%d",&x);
 temp=x;
 while(x!=0)
 {
  x=x/10;
  i++;
 }
 printf("位数为%d",i);
 printf("\n");
 printf("个十百千万\n");
 for(j=0;j<i;j++)
{
  Y=temp%10;
  printf("%d",Y);
  temp=temp/10;
}
printf("\n");
2010-09-14 18:03
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-09-14 19:31
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
收藏
得分:0 
方法有几种:
int GetDigits1(int n)
{
    n=abs(n);
    if(n<10)
        return 1;
    return 1+(int)log10(n);
}

int GetDigits2(int n)
{
    n=abs(n);
    char buff[30];
    sprintf(buff, "%d", n);
    return strlen(buff);
}

int GetDigits3(int n)
{
    n=abs(n);
    if(n<10)
        return 1;
    return 1+GetDigits3(n/10);
}
2010-09-14 19:48
汤永乐great
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-4-8
收藏
得分:0 
回复 楼主 qjunshen
亲,好啊
我是一名大二的学生,我很喜欢C语言,可我的专业不是这个方面的,你的发问,我试着写了一下,不知道对你有没有帮助,如下

(假设输入的一个整数是123,最后输出就是6.)
    #include <stdio.h>
    void   main  ()
    {  int x=123,y,z,t,sum;
       scanf ("%d",&x);
        
       while (x)
       {  y=x%10;(这是个位的个数)
          z=x/100;(这是百位的个数)
          t=x%100/10;(这是十位的个数)
        
       }
          sum=y+z+t;
     }
      printf ("%d",sum);

2013-04-08 10:48
快速回复:如何求一个整数的位数?
数据加载中...
 
   



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

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