c语言中如何实现输入一个整数实现倒序输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中如何实现输入一个整数实现倒序输出相关的知识,希望对你有一定的参考价值。
1、新建一个工程和.c文件,输入头文件和主函数
2、声明被调用的函数,定义变量类型
3、输入整数
4、用一个if语句去判断整数是否为负数,若为负数则用putchar函数输出一个负号
5、调用一个函数
6、定义函数的返回类型和形参类型
7、通过if语句判断该数是否仅剩一位数,若不是则执行else语句
8、通过再次调用子函数一次输出高位的数
9、编译执行即可
参考技术A定义一个整数类型的输入,然后让它正序输出,倒序输出相信是很多C语言初学入门一定会遇到的经典题目,下面就是我对整数的正序和倒序输出一点小小的总结.
1. 反序(倒序)输出
反序输出常用的思路就是按位取余,把取出来的值进行循环保存。
int main()
int i=12345; //定义一个12345的整数
int temp=0;//temp作为存储的值
while(i!=0)
temp = temp*10 + i%10;
i/=10;
//反序取出来
printf("%d",temp); //打印
return 0;
如图所示:
2, 正序输出
正序输出会用在整形变量正序输出转换成对应的字符数组,或者倒过来.常用思路就是定义一个函数,在函数内递归取余调用自身,实现功能。
输入 : 12345
输出 :"12345"
如下:
char str(int x)
char a[100];//存放整数转换过来的字符
int i; //计数
if(x/10!=0)
str(x/10);
if(x>=0)
a[i]='0'+x%10; //整数转换成字符存储,字符都是以整数形式存储
else
a[i]='0'+(-x)%10;//整形包括负数
printf("%c",a[i++]);
int main()
int i;
printf("请输入一个整数:\\n");
scanf("%d",&i);
str(i);
return 0;
如图所示:
参考技术B直接输入:
一、# include "stdio.h"
int invert(long m)
printf("%ld", m%10);
m = m/10;
if (m>0)
invert(m) ;
如下图:
二、main()
long n;
printf("Enter n: ");
scanf("%ld", &n);
invert(n);
printf("\\n");
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
参考技术C思路:要想输出一个整数n的倒序,则先输出个位、十位、百位……,个位可以通过n%10得到,十位可以通过n/10%10得到,百位可以通过n%100%10得到……,所以可以通过先取余输出再除以10直到该数等于0为止。
参考代码:
#include<stdio.h>int main()
int n;
scanf("%d",&n);
while(n)
printf("%d",n%10);
n/=10;
printf("\\n");
return 0;
/*
输出:
12345
54321
*/ 参考技术D 注:本回答已涵盖下面的其它主要回答,为方便大家阅读,难点处已罗列注释
法1:适用于负数
#include<stdio.h>
int main()
int n,x;
int printn(int x); //函数原型
scanf("%d", &n);
if (n < 0)
n = -n;
putchar('-'); /*当输入的n<0,将之化为正数
同时用putchar('')语句加上负号*/
printn(n);
system("pause");
return 0;
//以下是函数的定义
int printn(int x)
if (x >= 0 && x <= 9)
printf("%d", x);
else /*以下通过赋值运行以方便理解:
例如输入13
先输出余数3
再进行printn(1)的函数运算
即输出1
运行结束*/
printf("%d", x % 10);
printn(x / 10);
法二:仅适用正数
#include<stdio.h>
int main()
int n;
scanf("%d", &n);
while (n)
printf("%d", n % 10);
n /= 10;
system("pause");
return 0;
/*VS2017调试结果参考:
输入10位数(>0),输出倒叙10位数;
输入>10位数,输出乱码;
1000--0001;
0--请按任意键继续;
0001--1;
+12--21*/
C语言、输入四位数、倒序输出。
这道题需要用到整数的分解,源代码如下:
#include <stdio.h>
main()
int num,result,a,b,c,d;
printf("请输入要分解的四位正整数:\\n");
scanf("%d",&num);
a=num%10;
c=num/100%10;
b=num/10%10;
d=num/1000 ;
result=a*1000+b*100+c*10+d;
printf("%d的逆序数为%d\\n",num,result);
运行结果如下:
扩展资料
我们可以通过十进制的取整取余特点来分别取到个位、十位、百位的数字:
百位:a/100; 对a 进行除以100 那么可以取到百位,
个位:a%10;对a 进行10 的取余那么一定会取到最后一位(即个位),
十位: a/10%10;最最复杂的就是取十位 的数字 其实由取一头(百位)一尾(十位)可以知道 我们可以将三位数变成两位数,然后对两位数取余就可以取到十位的数字。
参考技术A #include <stdio.h>main()
int Data,NewData,a,b,c,d;
printf("输入一个四位数:");
scanf("%d",&Data);
a=Data%10; /* 原数的个位 */
c=Data/100%10; /* 原数的百位 */
b=Data/10%10; /* 原数的十位 */
d=Data/1000 ; /* 原数的万位 */
NewData=a*1000+b*100+c*10+d; /* 组成新的数 */
printf("%d的逆序数为%d\n",Data,NewData);
如果满意、、请好评。。谢谢。
以上是关于c语言中如何实现输入一个整数实现倒序输出的主要内容,如果未能解决你的问题,请参考以下文章