• 【C语言程序设计】C语言整数逆序输出程序!


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

    算法思想

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

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

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

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

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

    程序代码

    #include <stdio.h>
    
    int convert(char s[],int n)
    
    {
    
        int i;
    
        if((i=n/10)!=0)
    
            convert(s+1,i);
    
        *s=n%10+'0';
    
        return 0;
    
    }
    
    int main()
    
    {
    
        int num;
    
        char str[10]=" ";
    
        printf("input integer data:");
    
        scanf("%d",&num);
    
        convert(str,num);
    
        printf("output string:
    ");
    
        puts(str);
    
        return 0;
    
    }

    调试执行结果

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

    input integer data:123456789

    output string:

    987654321

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

    input integer data:654321789

    output string:

    987123456

     

    总结

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

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

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


     

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

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

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


     
  • 相关阅读:
    pdflush的工作原理
    proc/sys/net/ipv4/下各项的意义
    Linux系统调用--getrlimit()与setrlimit()函数详解
    定位多线程内存越界问题实践总结
    Linux动态频率调节系统CPUFreq之三:governor
    Linux动态频率调节系统CPUFreq之二:核心(core)架构与API
    Linux动态频率调节系统CPUFreq之一:概述
    ubuntu cpu频率控制
    ThinkPHP5.1的数据库链接和增删改查
    php 常用的常量
  • 原文地址:https://www.cnblogs.com/huya-edu/p/14582228.html
Copyright © 2020-2023  润新知