精华内容
下载资源
问答
  • c语言正序输出整数的各位数字

    千次阅读 2020-04-23 23:09:16
    7-37 输出整数各位数字 (15分) 本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。 输入格式: 输入在一行中给出一个长整型范围内的非负整数输出格式: 从高位开始逐位输出整数的...

    7-37 输出整数各位数字 (15分)
    本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。

    输入格式:
    输入在一行中给出一个长整型范围内的非负整数。

    输出格式:
    从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。

    输入样例:

    123456

    输出样例:

    1 2 3 4 5 6

    一般的思路就是先得出这个数的位数,然后从高位开始分割,每个数字后面跟一个空格。特别需要注意的是对于边界数据比如0这些数的验证。

    #include <stdio.h>
    
    int main()
    {
        int x;
        scanf("%d",&x);
        int t=x;      //x后面还要用,暂时先储存起来
        int mask;
        if (t==0) mask=0;else mask=1;  //0的时候要特判
        
        while (t>9){  //这一段整个是得出位数
            t /=10;
            mask *=10;
        }
        if (x==0)  printf("%d ",0);
        while (mask!=0) { //核心过程,万事俱备,注意while条件
            t= x/mask;
            x %=mask;
            mask /=10;
            printf("%d ",t);
        }
    
        return 0;
    }
    
    展开全文
  • printf("请输入一个整数:"); scanf("%d",&num); print(num); system("pause"); return 0; } #define _CRT_SECURE_NO_WARNINGS 1 #include #include void print(int n)//功能实现了,不过一个字,磋!!! ...
    //递归实现
    #define _CRT_SECURE_NO_WARNINGS 1 
    #include<stdio.h>
    #include<stdlib.h>
    
    void print(int n)
    {
        if(n<0)
           n=-n;
        if(n>=10)
    		print(n/10);
    	printf("%d ",n%10);
    }
    int main()
    {
    	int num = 0;
    	printf("请输入一个整数:");
    	scanf("%d",&num);
    	print(num);
    	system("pause");
    	return 0;
    }
    
    
    
    #define _CRT_SECURE_NO_WARNINGS 1 
    #include<stdio.h>
    #include<stdlib.h>
    
    void print(int n)//功能实现了,不过一个字,磋!!!
    {
    	int arr[20]={0};
    	int i = 0;
    	int count = 0;
    	int tmp=n;
      if(n<0)
         n=-n;
    	while(tmp)//先看是几位数
    	{
    	    tmp/=10;
    		count++;
    	}
    	for(i=0; i<count; i++)
    	{
    	    arr[i]=n%10;
    		n/=10;
    	}
    	for(i=count-1; i>=0; i--)
    	{
    	    printf("%d ",arr[i]);
    	}
    }
    int main()
    {
    	int num = 0;
    	printf("请输入一个整数:");
    	scanf("%d",&num);
    	print(num);
    	system("pause");
    	return 0;
    }
    
    
    
    #define _CRT_SECURE_NO_WARNINGS 1 
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    
    void print(int n)
    {
    	int count = 0;
    	int tmp=n;
    	int i = 0;
      if(n<0)
    	  n=-n;
    	while(tmp)//先看是几位数
    	{
    	    tmp/=10;
    		count++;
    	}
    	for(i = 0; i<count; i++)//总感觉不是很完美
    	{
    		tmp=n/pow(10,(double)(count-i-1));
    		n=n-tmp*pow(10,(double)(count-i-1));
    		printf("%d ",tmp);
    	}
    }
    int main()
    {
    	int num = 0;
    	printf("请输入一个整数:");
    	scanf("%d",&num);
    	print(num);
    	system("pause");
    	return 0;
    }

    展开全文
  • 任意输入一个非负整数正序输出它的每一位数 输入样例 700000 输出样例 0 0 0 0 0 7 #include<stdio.h> int main() { int x; scanf("%d",&x); int mask = 1; int t = x; while (t > 9) { ...

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

    输入样例

    700000

    输出样例

    0 0 0 0 0 7

    #include<stdio.h>
    int main()
    {
    	int x;
    	scanf("%d",&x);
    	int mask = 1;
    	int t = x;
    	while (t > 9)
    	{
    		t/=10;
    		mask*=10;
    	}
    	do {
    		int d = x/mask;
    		printf("%d",d);
    		if (mask > 9){
    			printf(" ");
    		}
    		x%=mask;
    		mask/=10;
    	}while (mask>0);
    	printf("\n");
    	return 0;
    }
    
    展开全文
  • 输入一个非负整数正序输出它的每一位数字 输入:13425 输出:1 3 4 2 5 首先初步的思路: #include<stdio.h> int main() { int x = 13425; int d; //用来输出每一位数字 int mask = 10000; //...

    题目:

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

           输入: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语言》,与老师代码并不是一模一样,可能会出现错误,望指正。

    展开全文
  • 先看一下题目要求,我们最开始学习写过一个作业很像这个题,只不过是给定这个整数是个5位数字,当时我们用10000,1000,100,10,1,这些数来回简单运算一下将每个数正序(逆序)输出。 现在我们这道题给定的却是...
  • 关于C语言解决正序整数分解的问题

    千次阅读 2018-02-12 14:57:16
    整数分解即,把每一位拆开输出,例如12365,输出结果是1 2 3 6 5。大概思路:12365/10000=12365/1000=2365/100=365/10=65/1=5这样计算可以得到每一位数。所以需要一个变量,来得到每一次需要除以的10的倍数。#...
  • C语言 正序分解整数

    2020-07-14 16:23:26
    输入一个非负整数正序输出它的每一位数字 输入 13526 输出 1 3 5 2 5 6 分析思路: 需要正序输出每一位数字 ,我们可以先把数逆序一遍,再逆序输出每一位数字。 这种方法看上去更加简单 ,但是当我们验证10 的...
  • 整数分解并正序输出-C语言

    千次阅读 2019-03-27 19:18:51
    学习了大概两周的C语言基础,今天终于进行了第一次做了一个比较搞脑子的程序,虽然代码是我自己一个一个敲的,但是,是在MOOC上的C语言入门课做的反馈。 很多时候我觉得,学习代码一定要自己手敲一遍,虽然手敲的...
  • 键盘输入整数1342315,要求输出513243 int main() { int x; int digit; int result = 0; scanf("%d",&x); while( x>0 ) { digit = x%10;//得到当前整数的个位数 result = result*10+digit; printf...
  • **关于C语言的一些入门习题** **cocowy的编程世界** 问题描述:关于任意整数的逆序输出。 #include<stdio.h> #include<stdlib.h> int main() { int a,b=0; int c=1; printf...
  • 在谭浩强的《C程序设计》中习题4.8要求:给一个不多于5位的正整数的上面三个问题,发现很多只能适用于题目条件下,而不能用于计算机可识别的全部正整数,故将我的经验分享给大家。更加方便的方法欢迎与我探讨。 #...
  • 注意:1/n不是整数,不可以用int,否则会变成0 #include <stdio.h> int main () { int i; int n; double sum = 0; scanf("%d",&n); for (i=1;i<=n;i++) { sum += 1.0/i; \\注意这里用1.0,...
  • 话不多说,先上代码(没怎么优化代码,尤其是正序输出的那个函数,用到了三个循环)#include &lt;stdio.h&gt; void order_print(int n) { int nCount = 1, temp = n; while(temp / 10) { nC...
  • C语言中的经典例题-正序输出与逆序输出任意数字

    万次阅读 多人点赞 2018-03-28 22:41:41
    谭浩强的C程序设计-第四版中有这样一道例题: 给定一个不多于五位的正整数,求:1.求它的位数;2.分别输出每一位数字;3.按逆序输出各位数字;这道题目乍一看给人一种轻松简单的感觉,甚至很多编程初学者都能在看.....
  • 参考书籍《数据结构与算法分析 C语言描述》 《Java程序设计 基础、编程抽象与算法策略》  先谈谈递归,递归的一般解释为将问题分解为更简单的具有类似解决方法子问题,更小子问题解决后将结果一步步返还给原始问题...
  • 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){...
  • 定义一个整数类型的输入,然后让它正序输出,倒序输出相信是很多C语言初学入门一定会遇到的经典题目,下面就是我对整数的正序和倒序输出一点小小的总结. 1. 反序(倒序)输出  反序输出常用的思路就是按位取余,把取...
  • 字符串转化为数字:—‘0’     数字转化为字符串:+‘0’   #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;vld.h&gt; #include &...void...
  • 正序输出整数时,例:1234,先将1234/1000=1,保留234,再将234/100=2,34/10=3,3/10=3,依次进行按位输出 在逆序输出整数时,例:1234,1234%10=4,保留123,再将123%10=3,12%10=2,1%10=1,依次输出   #...

空空如也

空空如也

1 2 3 4
收藏数 80
精华内容 32
关键字:

c语言整数正序输出

c语言 订阅