博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
I00028 整数逆序
阅读量:7054 次
发布时间:2019-06-28

本文共 1239 字,大约阅读时间需要 4 分钟。

把一个整数逆序输出有两种办法。

1.使用字符串处理,先将整数转换为字符串,然后将字符串逆序。可以使用I/O函数,将整数值输出到字符串数组中,即转换为字符串,然后再对字符串的前后字符进行对换即可。

2.将整数变量中的值逆序。计算机程序中,用10去除整数时,商为10进制右移一位(去掉个位),余数为个位数。重复这样的计算,每次将取出的个位数再拼装成一个整数(原先的低位被拼装到高位),就得到了整数的逆序。这也是函数atoi()和函数itoa()的原理。

参见:和。

应该说,后一种做法更具备通用性。前一种做法需要用到一个一个临时字符数组,如果只是输出则只需要将字符数组的内容输出就可以了,如果要得到一个整数值则需要另行处理,手续有些繁琐。

实际编写程序过程中,还需要注意将功能封装到函数中,以便复用。

程序中给出了两个函数,用于整数逆序运算。

程序如下:

/* I00028 整数逆序 */#include 
#include
void int_reverse1(int val, char t[]){ int start=0, end; char temp; sprintf(t, "%d", val); end = strlen(t) - 1; while(start < end) { temp = t[start]; t[start] = t[end]; t[end] = temp; start++; end--; }}int int_reverse2(int val){ int result = 0; while(val) { result *= 10; result += val % 10; val /= 10; } return result;}int main(void){ int val, r; char t[20]; while(scanf("%d", &val) != EOF) { int_reverse1(val, t); r = int_reverse2(val); printf("%d %s %d\n", val, t, r); } return 0;}
程序运行例子
(输入了123、12345、3721和525213,两个函数算出的结果是一样的)如下:

123

123 321 321
12345
12345 54321 54321
3721        
3721 1273 1273
525213
525213 312525 312525

转载于:https://www.cnblogs.com/tigerisland/p/7564735.html

你可能感兴趣的文章
[LeetCode]: 242: Valid Anagram
查看>>
项目机器在开机器的时候做好标签,汉字标注
查看>>
expr判断整数是相加的值,返回命令的返回值$? 是0,但是少数情况是1,例如1 + -1 ,$? 的结果是1 ,判断要大于1最准确...
查看>>
Matplotlib
查看>>
DES 加密----笔记
查看>>
docker 运行redis
查看>>
VS2015 C#6.0 中的那些新特性(转自http://www.cnblogs.com/henryzhu/p/new-feature-in-csharp-6.html)...
查看>>
魔法森林[NOI2014]
查看>>
bzoj4002[JLOI2015]有意义的字符串
查看>>
python爬虫-抓取acg12动漫壁纸排行设置为桌面壁纸
查看>>
用QQ传dll文件,你可能会遇到灵异事件
查看>>
hbase meta表的结构
查看>>
2017-2-10
查看>>
Git
查看>>
centos7.4 安装后的基本设置
查看>>
SQLCipher 配置
查看>>
函数的定义、作用域、函数递归
查看>>
纯手工 css+html 简易三级导航栏(横向)
查看>>
个人码风
查看>>
基于昨天调代码的收获
查看>>