汉扬编程 编程大纲 「C语言程序设计」C语言整数逆序输出程序

「C语言程序设计」C语言整数逆序输出程序

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

「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 时,其程序运行结果如下所示:

input integer data:123456789output string:987654321当输入整数为 654321789 时,逆序转换输出结果如下所示:

input integer data:654321789output string:987123456

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

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

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

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

【值得关注】我!

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

C语言 | 逆序输出10个数

例22:C语言实现对数组元素依次赋值0,1,2,3,4,5,6,7,8,9,然后按照逆序输出。

解题思路:显然首先要定义一个长度为10的数组,由于赋给的值是整数,因此,数组可以定义为整型,要赋值的是0~9,有一定规律,可以用循环来赋值。

源代码演示:

#include<stdio.h>//头文件 int main()//主函数 {  int a[10];//定义整型数组,数组的大小为10   int i;//定义整型变量   printf("原来的顺序:");   for(i=0;i<10;i++)//赋值使a[0]~a[9]的值为0~9  {    a[i]=i;// 把i的值赋给数组a[i]     printf("%d ",a[i]);//输出a[i],每个数之间加个空格隔开   }   printf("\\n");//换行   printf("逆序排列后:");   for(i=9;i>=0;i–)//倒序输出   {    printf("%d ",a[i]);  }   printf("\\n");//换行   return 0;//函数返回值为0 }编译运行结果如下:

原来的顺序:0 1 2 3 4 5 6 7 8 9逆序排列后:9 8 7 6 5 4 3 2 1 0——————————–Process exited after 2.526 seconds with return value 0请按任意键继续. . .注意:数组元素的下标是从0开始看,如果用int a[10],定义数组,则最大下标值为9,不存在数组元素a[10]。

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/mianfei/6743.html

C语言中有32个重要且比较常用的关键字,想要学好就需要记牢

C语言入门:Visual Studio 2010安装

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部