【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:\n");

    puts(str);

    return 0;

}

 

调试执行结果

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

input integer data:123456789设计

output string:指针

987654321调试

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

input integer data:654321789

output string:

987123456

 

总结

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

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

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


 

无论你是转行也好,初学也罢,进阶也可,若是你想学编程,进阶程序员~

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

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

相关文章
相关标签/搜索