精华内容
下载资源
问答
  • C语言整数分解

    千次阅读 2020-08-19 16:29:27
    将正整数分解为单个数字并打印 输入:123 输出:1 2 3 输入:700 输出:7 0 0 #include<stdio.h> #include<math.h> int main() { int x,count=0; scanf("%d",&x); int t = x; while(x>0){//...

    将正整数分解为单个数字并打印
    输入:123
    输出:1 2 3
    输入:700
    输出:7 0 0

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int x,count=0;
        scanf("%d",&x);
        int t = x;
        while(x>0){//计算x的位数
            x/=10;
            count ++;
        }
        x = t;
        int temp = pow(10,count-1);//temp为与x同位数的10的幂
        while (temp>0){//注意循环的条件是temp > 0,而不是x > 0;否则例如700 只会输出7
            printf("%d ",x/temp);
            x %= temp;
            temp /= 10;
        }
        return 0;
    }
    
    展开全文
  • C语言-数字分解

    千次阅读 2019-06-20 19:37:59
    Description 给出一个不多于5位的整数,要求 1、求出它是...三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数 Sample Input 12345 Sample Output 5 1 2 3 4 5 5...

    Description

    给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

    Input

    一个不大于5位的数字

    Output

    三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数

    Sample Input

    12345

    Sample Output

    5
    1 2 3 4 5
    54321

    #include<stdio.h>
    main()
    {
        int a,b,c,d,e,f;
        long x;
        scanf("%ld",&x);
        e=x%10;
        d=x/10%10;
        c=x/100%10;
        b=x/1000%10;
        a=x/10000%10;
          if(x<10)
          {
             f=1;
             printf("%d\n",f);
             printf("%d\n",e);
             printf("%ld",e);
          }
          else
            if(x>=10&&x<100)
          {
             f=2;
             printf("%d\n",f);
             printf("%d %d\n",d,e);
             printf("%ld",e*100+d);
          }
            else
            if(x>=100&&x<1000)
            {
             f=3;
             printf("%d\n",f);
             printf("%d %d %d\n",c,d,e);
             printf("%ld",e*1000+d*10+c);
          }
            if(x>=1000&&x<10000)
            {
             f=4;
             printf("%d\n",f);
             printf("%d %d %d %d\n",b,c,d,e);
             printf("%ld",e*1000+d*100+c*10+b);
          }
            else
                 {
             f=5;
             printf("%d\n",f);
             printf("%d %d %d %d %d\n",a,b,c,d,e);
             printf("%ld",e*10000+d*1000+c*100+b*10+a);
          }
    }
    
    
    展开全文
  • 题目: 输入一个非负整数,正序输出它的每一位数字 输入:13425 输出:1 3 4 2 5 首先初步的思路: #include<stdio.h> int main() { int x = 13425;... //用来截取位数 while( mask &...

    题目:

           输入一个非负整数,正序输出它的每一位数字

           输入:13425

           输出:1 3 4 2 5

    首先初步的思路:

    #include<stdio.h> 
    int main()
    {
    	int x = 13425; 
    	int d; //用来输出每一位数字
    	int mask = 10000; //用来截取位数
    	while( mask > 0 ){
    		d = x/mask;//截取x的最高位		
    		x = x%mask; //保留除了最高位的后几位
    		mask = mask/10; 	 
    		printf("%d",d);
    		if( mask >0 ) printf(" ");//数字中间有空格、最后一位数字后没有空格 
    	}
    	return 0; 
    }

    注:若对x与mask的关系不明确可以试着输出它们的值:

    代码改进:

    由于该代码要满足多种位数的测试用例,因此mask不能固定为10000。

    #include<stdio.h> 
    int main()
    {
    	int x = 13425;
    	int t = x; //暂存x的值 
    	int d;
    	int count=0;//用来记录x的位数 
    	int mask=1;
    	//我们需要根据x的位数来设置mask的值,x是5位,mask = 10000 
    	
    	while(x>9){
    		x /= 10;
    		count++;
    		mask *=10;
    	}
    	//说明: 
    	//在循环中while里面的条件是x>9,mask每一轮循环都*10,
    	//如果条件是x>0,则得到的mask的0有五位,即100000 
    	
    	//为什么设置t的原因就是上面一个循环会改变x的值,所以t来暂存x		 
    	while( mask > 0 ){
    		d = t/mask;//截取t的最高位		
    		t = t%mask; //保留除了最高位的后几位
    		mask = mask/10; 	 
    		printf("%d",d);
    		if(mask > 0) printf(" ");//数字中间有空格、最后一位数字后没有空格 
    	}
    	return 0; 
    }

    运行结果:

    为了把格式看的更加清楚,我们将空格部分显示化为*:

    其他测试:

          

    本节学习参考浙江大学翁恺老师的《C语言》,与老师代码并不是一模一样,可能会出现错误,望指正。

    展开全文
  • 要求: 1.输如一个非负整数,正序输出它的每一位 2.输入:12345 3.输出:1 2 3 4 5` #include<stdio.h> int main() ... //统计输入整数的位数 while(d>9){ d/=10; mask*=10; //pri...

    要求:
    1.输如一个非负整数,正序输出它的每一位
    2.输入:12345
    3.输出:1 2 3 4 5`

    
    #include<stdio.h>
    int main()
    {
    	int x;
    	scanf("%d",&x);
    	int mask=1;
    	int d=x;
    
    	//统计输入整数的位数
    	while(d>9){
    		d/=10;
    		mask*=10;
    		//printf("d=%d mask=%d\n",d,mask);
    	}
    	//正序分解
    	do{
    		d=x/mask;
    		printf("%d",d);
    		if(mask>9){
    			printf(" ");
    		}
    		x=x%mask;
    		mask/=10;
    	}while(mask>0);
    	printf("\n");
    	return 0;
    }
    

    思路:
    循环1:
    1234 /1000=1
    1234%1000=234
    1000/10=100
    循环2:
    234/100=2
    234%100=34
    100/10=10
    循环3:
    34/10=3
    34%10=4
    10/10=1
    循环4:
    4/1=4
    4%1=0
    1/10=0
    退出循环

    展开全文
  • //一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同 #include<stdio.h> int main(){ long num,gewei,wanwei,shiwei,qianwei; printf("输入num的值\n"); scanf("%ld",&...
  • 6.14有0,1,2,3,4共5个数字,能组成多少个互不相同的且无重复数字的3位数?并输出所有这些3位数。 #include<stdio.h> int main(){ int i,j,k,count=0; printf("找到互不相同且无重复数字的3位数:\n"); for...
  • 参考书籍《数据结构与算法分析 C语言描述》 《Java程序设计 基础、编程抽象与算法策略》  先谈谈递归,递归的一般解释为将问题分解为更简单的具有类似解决方法子问题,更小子问题解决后将结果一步步返还给原始问题...
  • C语言算法

    2018-06-04 21:24:57
    是指一个N位数,其各位数字立方和等于该数 void WaterFlowerNumber(){ int i,j,k,n; printf("Water flower number is:"); for(n = 100; n &lt; 1000; n++) { i = n/100; //分解百位 j = n/10 % 10;...
  • …………更大位数以此类推 代码例子: #include<stdio.h> int main() { int ge,shi,bai,qian,wan; int n=12345; ge=n%10;//可以看做n/1%10 shi=n/10%10; bai=n/100%10; qian=n/1000%10;
  • C语言 整数的逆序

    2019-04-30 09:12:00
    C语言 整数的逆序 整数的分解 一个整数是由1至多位数字组成的,如何分解出整数的各个位上的数字,然后加以计算 对一个整数做%10的操作,就得到它的个位数; 对一个整数做/10的操作,就去掉了它的个...
  • C语言小练习

    2018-04-24 21:32:27
    练习题目:输出100-999中个位数和百位数之和为9的数程序分析:1、首先利用循环输出100-999中所有的数字2、分解所得到的所有整数,得到个位数和百位数,3、将得到的个位数和百位数进行相加判断,如果为9则输出这个数...
  • 此算法需要知道平方数的位数,再一一将每一位分解、比较,此方法对于位数已知且位数不是太多的数来说比较适用。 此问题可借助数组来解决。将平方后的(a的)每一位进行分解,按从低位到高位的顺序依次暂存到数组中...
  • /*程序分析:先分解出每一位数,再逐渐分解另外4位数*/ #include "stdio.h" main( ) { long ge,shi,qian,wan,x; printf("请输入一组5位数\n"); scanf("%ld",&x); wan=x/10000; qian=x%10000/1000; shi=x%...
  • C语言编程判断输入是不是回文数

    千次阅读 2019-03-03 20:32:01
    问题描述:输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 问题分析:学会分解出每一位数即可。 程序源码: #include&lt;stdio.h&gt; int main( ) { long ge,...
  • C语言初级例题回文数

    2016-11-11 17:16:39
    有趣的C语言例题,摘自C语言网。 题目: 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 1.程序分析: 学会分解出每一位数。 2.程序源代码: main( ) { long ge,shi,...
  • c语言小笔记4-19

    2021-04-19 21:34:53
    整数的分解: 对一个整数做%10的操作会得到它的个位数。 对一个整数做/10,就去掉了它的个位数 例: #include <stdio.h> int main(){ int a; int digit; int ret = 0; scanf("%d",&a); while( a...
  • 应该说明的是, 枚举类型是一种基本数据类型,而不是一种构造类型, 因为它不能再分解为任何基本类型。 枚举类型的定义和枚举变量的说明 一、枚举的定义枚举类型定义的一般形式为: enum 枚举名 { 枚举值表 }; ...
  • 从本例可以看出,由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b 是双精度型,有效位为十六位。但Turbo C 规定小数后最多保留六位,其余部分四舍五入。 [Practice] //...
  • C语言经典例题100道

    2011-01-10 13:14:03
    29.求解正整数位数 30.判断回文数 31.星期几猜测游戏 32.改变文本颜色 33.学习gotoxy()与clrscr()函数 34.练习函数调用 35.设置文本颜色 36.求100之内的素数 37.对10个数进行排序 38.求3*3矩阵对角线元素之和 39....
  • c语言中char数组和int的转换

    万次阅读 2018-02-21 17:58:09
    在&lt;stdlib.h&gt;头文件中有两个函数,int atoi(char *p)和char *itoa(int p),分别将装有整数的char数组转化为整数,和将整数按位数分解依次存入char数组中。
  • c语言深度剖析》学习笔记2

    千次阅读 2012-06-19 09:46:27
    第二章:符号 2.1 注释 >编译器会用空格代替原来的注释; >嵌套注释:return /*/*/0*/**/1;...>左移和右移的位数不能大于数据类型的宽度,不能小于0;...>有符号数的右移,如果...序分解成符号的方法是,从左到右一个一个
  • ④ 由输入整数分解排序后的数组得到最大值和最小值: int getmaxn(int a[ ]) 返回值为最大值 int getminn(int b[ ]) 返回值为最小值 (13)函数 fun 的功能是:计算正整数num的各位上的数字之积。例如,若输入:...
  • 实例119 正整数分解质因数 308 实例120 排列问题 309 实例121 兔子繁殖问题 311 实例122 杨辉三角形 313 实例123 计算字符串中子串出现的次数 314 实例124 字母大小写转化并在磁盘中保存 316 实例125 求100...
  • 本题的思路是把这个数分解重新组成一个数,分解的方法是将该数逆置,再与原来的数比较是否相等,若相等就是回文数,逆置的方法是设保存逆置的数为rev 初始为0,每一次将它乘10,即rev * 10,然后把要判断的数t,取余...
  • /*【程序42】 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*?...的结果为3位数。... 这个题目 ,方程式根据分解方法 ,可以看出,右边总是比左边大1.所以这个题无解。这么理解对吗?
  • 浙江大学C语言上机练习题&答案 第2周(M2) 2 20011求华氏温度100°F对应的摄氏温度。 2 20012 求华氏温度 150°F 对应的摄氏温度。 3 20013求摄氏温度26°C对应的华氏温度。 3 20015当n为152时,分别求出n的个位...
  •   第一题(60分):  按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90
  • 所谓“水仙花数”是指一个n位数,其各位数字n次方和等于该数 本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 * 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,...
  • 编写程序求n!--C语言中数组的使用

    千次阅读 2013-03-30 22:41:18
    分析:数字相乘可以分解为各个阶位相乘,比如百位数A*B可分解为A100*B+A10*B+A1*B,然后从小位到大位分析,如果某一位的值大于等于10,则需要向高位进位,并对该位除以10,余数为该位的值。比如24*5,等价于(2*5)*...

空空如也

空空如也

1 2 3
收藏数 41
精华内容 16
关键字:

c语言分解位数

c语言 订阅