经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
【C语言程序设计】C语言整数逆序输出程序!
来源:cnblogs  作者:C语言编程学习基地  时间:2021/3/29 9:12:47  对本文有异议

将一个从键盘输入的整数存放到一个数组中,通过程序的运行按照数组中的逆序输出该整数,利用递归的方法解决问题。

 

算法思想

设计函数实现数据的逆序存放,设定形参数组接收实参数组的地址,来存储数据的每一位。

函数体采用递归的方式解决问题,因此考虑递归进行的条件。

例如,把数据 n 存放到数组 s 中,若 n 是一位数,则存放 n 到数组中;若 n 不是一位数,则存放 n/10 到数组中。

问题解决的难点在于找到数据的存放地址,通过不断地取余和整除 10 来得到数据的每一位。

为了实现数据的逆序存放,每一次整除 10 的时候,同时把存放数据的数组地址后移,这样得到的第一位数存放在数组的最后一位……通过依次前移,即递归的回归,实现整个数据的存放。通过函数 convert() 实现字符串中的数字的逆序转换。

 

程序代码

  1. #include <stdio.h>
  2.  
  3. int convert(char s[],int n)
  4. {
  5. int i;
  6. if((i=n/10)!=0)
  7. convert(s+1,i);
  8. *s=n%10+'0';
  9. return 0;
  10. }
  11. int main()
  12. {
  13. int num;
  14. char str[10]=" ";
  15. printf("input integer data:");
  16. scanf("%d",&num);
  17. convert(str,num);
  18. printf("output string:\n");
  19. puts(str);
  20. return 0;
  21. }

 

调试执行结果

当输入整数为 123456789 时,其程序运行结果如下所示:

input integer data:123456789

output string:

987654321

当输入整数为 654321789 时,逆序转换输出结果如下所示:

input integer data:654321789

output string:

987123456

 

总结

数组名代表数组中第一个元素的地址,数组的地址就是数组的指针,每个元素的地址就是每个元素的指针。

数组元素在内存中是连续存放的,相对于普通变量,用指针指向数据元素操作更简便。

一维数组的数组名代表了数组的首地址,即数组的指针,但数组名是常量指针,其值是不可改变的,可以定义一个指针变量指向数组名。当定义了指针后,对于数组元素的引用既可以使用下标,又可以使用指针。


 

不管你是转行也好,初学也罢,进阶也可,如果你想学编程,进阶程序员~

【值得关注】我的 编程学习交流俱乐部!【点击进入】

全栈程序员正在等你加入~


 

原文链接:http://www.cnblogs.com/huya-edu/p/14582228.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号