精华内容
下载资源
问答
  • C语言求一个数是几位数,不使用循环 C语言求一个数是几位数,不使用循环 C语言求一个数是几位数,不使用循环
  • 输入一个整数,个数是几位数,并且逆序显示这个数。 #include <stdio.h> int main() { int a,b,c; int i=0; scanf("%d",&a); b=a; while(b>0) { c=b%10; b=b/...

    题目:
    输入一个整数,求这个数是几位数,并且逆序显示这个数。

    #include <stdio.h>
    int main()
    {
    	int a,b,c;
    	int i=0;
    	scanf("%d",&a);
    	b=a;
    	while(b>0)
    	{
    		c=b%10;
    		b=b/10;
    		printf("%d",c);
    		i++;
    	}
    	printf("\n%d\n",i);
    }
    
    
    展开全文
  • 我是人间有格,今天发现C语言math中没有求一个数位...输出:这个数是几位数 #include<stdio.h> #define N 4 //输入范围位数上界 int pow1(int n,int i) //求次方数的函数 { int m=1; if(i==0) return 1; els

    我是人间有格,今天发现C语言math中没有求一个数位数的函数,于是写了一个
    如果有更好的方法请多指教,若抬起玉手点赞,本人不胜感激嘻嘻


    求一个数有多少位
    输入:一个(100,10000)之间的数(根据实际需要修改起来很容易)
    输出:这个数是几位数

    #include<stdio.h>
    #define N 4     //输入范围位数上界
    
    int pow1(int n,int i)   //求次方数的函数
    {
        int m=1;
        if(i==0) return 1;
        else
        {
            for(int k=0;k<i;k++)
            m*=n;
            return m;
        }
    }
    
    
    int qiuweishu( int number )   //求位数函数
    {
        int k=4;
        switch(number)
        {
            case 10000: return 5;break;     //假如本身是10的倍数
            case 1000 : return 4;break;
            case 100  : return 3;break;
            case 10   : return 2;break;
            case 1    : return 1;break;
        }
        for(int i=N;i>=1;i--)               //假如本身不是10的倍数
        {
            if(number/pow1(10,i-1)%10!=0) return k;
            else k--;
        }
    }
    
    main()
    {
    	int number,k;   
    	scanf("%d",&number);
        k = qiuweishu(number);
    	printf("这个数是%d位数",k);
    	return 0;
    }
    
    展开全文
  • C语言基础 输入的数字是几位数

    万次阅读 2018-10-15 13:45:23
    问题:任意输入一个整数,是一个几位数字? 思路:每次除以10,则去掉一位数,统计一次。经过循环,直到最后一位数,除以10为0,停止循环,停止统计。 代码: (1)使用for循环 #include&amp;amp;lt;stdio...

    ---------------------------------------start reading-------------------------------------------------
    问题:任意输入一个整数,求这是一个几位数字?
    思路:每次除以10,则去掉一位数,统计一次。经过循环,直到最后一位数,除以10为0,停止循环,停止统计。

    代码:
    (1)使用for循环

    #include<stdio.h>
    
    int Count(int n)
    {
    	int i;
    
    	if(n==0)
    	{
    		i=1;
    	}
    
    	for(i=0;n!=0;i++)
    	{
    		n/=10;
    	}
    	return i;
    }
    
    int main()
    {
    	printf("这是一个 %d 位数",Count(123456));
    
    	return 0;
    }
    

    (2)使用do–while循环

    int Count(int n)
    {
    	int tmp=0;
    
    	do
    	{
    		n/=10;
    		tmp++;
    	}
    	while(n!=0);
    
    	return tmp;
    }
    

    区别:若使用for循环则需要特别考虑无法进入循环的数字“0”,do–while循环则始终会执行一次,至少统计一次,所以不需要单独讨论“0”

    问题引申:用20进制表示123,则为几位数?
    用5进制表示123,则为几位数?

    解决关键:如上述题,用十进制表示,统计位数,每次除以十。
    本题用20进制则除以20,用5进制表示则除以5。

    10进制 123=1*(102)+2*(101)+3*(100) 三位数
    5进制 123=4*(52)+4*(51)+3*(50) 二位数
    20进制 123=6*(201)+3*(200) 三位数

    ------------------------------------------------End-------------------------------------------------------

    展开全文
  • 分析第一个问题,出它是几位数:我们先设置一个数让我们输入这个正整数: unsigned int x; 第二个,出它是几位数,4位数 x/1000!=0其他同理。我们就能解决这个问题; 第三个问题:打印出每一位数字:我们可以先...

    *今天有位朋友问了我一个问题,他说给出一个不多于4位数的正整数,求出它是几位数,分别打印出每一位数字,并按逆序打印出各位数字。用C语言且只能用if语句
    分析第一个问题,求出它是几位数:我们先设置一个数让我们输入这个正整数: unsigned int x;
    第二个,求出它是几位数,4位数 x/1000!=0其他同理。我们就能解决这个问题;
    第三个问题:打印出每一位数字:我们可以先设置int型的a,b,c,d,让他们分别表示千位数字,百位数字,十位数字,个位数字。接下来就是怎样找出它们的问题了。
    开始的时候,我是先这样想的,先判断它是几位数字再给他们赋值,但是我发现它有个通式,这样减少了好多代码。
    我们先分析个位数字,不管它是几位数字,x%10都能求出这个数,因为只有个位数不是十的倍数。
    接下来我们分析一下十位数字,百位和千位数字都是100的倍数,那我们可以利用取余的关系,将x%100得到只剩十位数字和百位数字,那我再用取整符号,将(x%100)/10就能得出十位数字了。百位数字和千位数字同理。故各位数字结果如下:
    A=x/1000;b=(x/100)%10;c=(x%100)/10;d=x%10;
    再将他们分别打印出来即可。
    最后一个问题,按逆序打印出各位数字,通过上面我们得出了它是几位数之后,我们把它逆序就超级简单啦。
    最后我们就是用if语句把它们连在一起就行啦!

    #include "stdio.h"
    void main()
    {
       unsigned int x;
       int a,b,c,d,t;
       printf("请输入一个正整数x:",x);
       scanf("%d",&x);
       a=x/1000;
       b=(x/100)%10;
       c=(x%100)/10;
       d=x%10;
       t=a+b*10+c*100+d*1000;
       	printf("它个位数上是d=%d\n",d);
       if(a!=0)
       {
       	printf("它十位数上是c=%d\n",c);
       	printf("它百位数上是b=%d\n",b);
       	printf("它千位数上是a=%d\n",a);
       	printf("这个数是一个四位数\n");
       	printf("它逆序结果为t=%d\n",t);
       }
       else if(b!=0){
        printf("它十位数上是c=%d\n",c);
       	printf("它百位数上是b=%d\n",b);
    	printf("这个数是一个三位数\n");
       	printf("它逆序结果为t=%d\n",t/10);
       }
       else if(c!=0){
       	printf("它十位数上是c=%d\n",c);
        printf("这个数是一个十位数\n");
       	printf("它逆序结果为t=%d\n",t);}
       	else {
        printf("这个数是一个一位数\n");
       	printf("它逆序结果为t=%d\n",d);
       	}
    }
    

    示例:
    173
    1446
    运行结果如下:
    在这里插入图片描述
    在这里插入图片描述
    注:有其他简单的好的想法,可有意私聊小编,谢谢。

    展开全文
  • //给一个五位数,要求输出它的位数 //并且输出每一位数字...//求一个数是几位数的函数 //方法:丢弃个位数法(丢弃个位数用 /=10) int Count(long long number) { int tmp=0; if(number == 0) { return 1; } wh...
  • 给出一个不多于5位的整数,要求 1、出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字 输入: 一个不大于5位的数字 输出: 输出三行, 第一行 位数, 第二行 用空格分开的每个数字,注意最后一个数字后...
  • 是几位数 2.分别输出每位数字 3.按逆序输出各位数字 #include<stdio.h> #include<math.h> //几位数 int Count (long long n) { if(n==0) return 1;//如果是0,则要返回1 int tmp = 0; while(n!=...
  • C语言:给出一个数它的位数

    千次阅读 2018-07-14 23:47:00
    1.求出它是几位数 2.分别输出每一位数字 3.按逆序输出个位数字,例如原数为321,应该要输出123*/ 思路:求一个正整数n的位数可以先定义一个变量count,并初始化为0,依次把该整数n除以10,直到其为0为止,并且每...
  • 求一个数是几位数的几种方法

    万次阅读 2018-06-12 16:57:30
    种:数字分割法 代码如下: #include <stdio.h> void main() { int x,b=0; scanf("%d",&x); while(x>0) { x=x/10; b++; } printf("%d ",b); } 第二种:log10法 C语言中只有lo...
  • 6,给一个不多于5位的正整数,要求:一、是几位数,二、逆序打印出各位数字。 //intnum=0,temp=0,i=0; //printf("输入一位数字:"); //scanf("%d",&num); //while(num>0){ //temp=num%10; //...
  • int Count(long longnt Count(long long n) //统计是几位数 { if(n==0) return 1; int tmp =0; while(n!=0) { tmp++; n/=10; } return tmp; }
  • C语言位数

    千次阅读 2018-10-31 12:48:26
    题目:给出一个不超过12345678的正整数,出它是几位数。 #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main() { int a,i=0; scanf("%d",&amp;a); do { a/=10; i+...
  • 一个不多于5位的正整数,要求:一、出它是几位数,二、逆序打印出各位数字 程序分析 可以使用数组来存放我们输入的数字,而且在存放前,我们先进行处理,按照要输出的顺序存放进去 主要代码 int main(){ int ...
  • 出它是几位数 //2.分别输出每位数字 //3.按逆序输出各位数字 #include&amp;amp;lt;stdio.h&amp;amp;gt; #include&amp;amp;lt;math.h&amp;amp;gt; //出它是几位数 int Count(int n) {...
  • 即将整数对10余,这样每次丢弃一个数字计数器加加,就可求得他是几位数。 2.得到整数位数,用pow函数,输出最高位并丢弃最高位。主要是除与余的应用。注意丢弃最高位后power要除10. 3.逆序主要用10余得到最后...
  • 出它是几位数; 分别输出每一位数字; 按逆序输出各位数字。 1.出它是几位数 思路:一个数每一次除以10都会少一位数。 // scanfNum:输入的5位数 // printfNum:用作输出的5位数 // total:记录有几位数 do { ...
  • 例题:给一个不多于5位的正整数,要求:一、是几位数,二、逆序打印出各位数字。 代码如下: /*程序分析:先分解出每一位数,再逐步分解出余下的数*/ #include "stdio.h" main( ) { long a,b,c,d,e,x; printf...
  • 不管顺序输出还是逆序输出,首先都要设计一个函数来实现统计十进制数字的位数:用tmp标记十进制的位数,将是否为0作为分类标准。 在逆序输出每一时需构造while循环语句,循环的次数即十进制的位数,先...
  • // 1、出它是几位数 // 2、分别输出每一位数字 // 3、按逆序输出各位数字 #include #include int main() { int a,b,c,d; int count = 1; printf("请输入一个不多于5位的正整数:"); scanf("%d",&a); c ...
  • 一个不多于5位的正整数,要求: 1、出它是几位数; 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123;
  • /*输入一个不多于5位的正整数,要求1:出它是几位数; 要求2:分别打印出每一位数; 要求3:按逆序打印出各位数字;*/ #include <stdio.h> #include <math.h> int num_count(int num); void showdata...
  • 给出一个不多于5位的正...1.出它是几位数; 2.分别输出每一位数字; 3.按逆序输出各位数字。 1, int GetFigures(int n) { int count= 0; do { n /= 10; count++; }while(n!=0); return count;...
  • = 0) printf("它5位数,逆序为:%ld%ld%ld%ld%ld\n", e, d, c, b, a); else if (b != 0) printf("它4位数,逆序为:%ld%ld%ld%ld\n", e, d, c, b); else if (c != 0) printf("它3位数,逆序为:%ld%ld...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 288
精华内容 115
关键字:

c语言求一个数是几位数

c语言 订阅