【原创】CS必修课——C语言基础编程实战28“C语言整数逆序输出”-新东方前途出国

您的位置:首页>顾问中心>孔杰>日志>【原创】CS必修课——C语言基础编程实战28“C语言整数逆序输出”
-人正在咨询
向TA咨询

欢迎向我提问

*顾问预计24小时内解答,并通过短信方式通知您

留学顾问孔杰

孔杰

活动导师

    获取验证码
    向TA提问

    温馨提示

    您当前咨询的顾问所在分公司为 北京 为您推荐就近分公司 上海 的顾问

    继续向孔杰提问 >
    预览结束
    填写信息下载完整版手册
    获取验证码
    一键解锁留学手册
    在线咨询
    免费评估
    留学评估助力院校申请
    获取验证码
    立即评估
    定制方案
    费用计算
    留学费用计算器
    电话咨询
    预约回电

    顾问将于15分钟内回电

    立即预约
    咨询热线

    小语种欧亚留学
    400-650-0116

    导航

    【原创】CS必修课——C语言基础编程实战28“C语言整数逆序输出”

    2020-03-20
     

    C语言整数逆序输出

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

    算法思想

    设计函数实现数据的逆序存放,设定形参数组接收实参数组的地址,来存储数据的每一位。函数体采用递归的方式解决问题,因此考虑递归进行的条件。例如,把数据 n 存放到数组 s 中,若 n 是一位数,则存放 n 到数组中;若 n 不是一位数,则存放 n/10 到数组中。

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

    程序代码

    1. #include <stdio.h>
    2. int convert(char s[],int n)
    3. {
    4. int i;
    5. if((i=n/10)!=0)
    6. convert(s+1,i);
    7. *s=n%10+'0';
    8. return 0;
    9. }
    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

    总结

    数组名代表数组中第一个元素的地址,数组的地址就是数组的指针,每个元素的地址就是每个元素的指针。数组元素在内存中是连续存放的,相对于普通变量,用指针指向数据元素操作更简便。

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



    更多详情
    -老师帮忙评估

    自身软实力标化成绩多维度为您评估留学录取率

    立即评估
    推荐阅读 换一换
    提交成功

    稍后会有顾问老师反馈评估结果

    温馨提示

    您当前咨询的 孔杰 顾问,所在分公司为 - ,已为您推荐就近分公司 - 的顾问。

    以下为-分公司顾问:

    继续向孔杰提问