c语言-指针(数组)练习2

题目:将数组中n个元素按逆序存放并打印出来,使用函数封装与指针

思路:

1.定义一个数组arr[5]和用于存放数组大小(数组大小通过sizeof关键字来进行计算)的变量len;

2.创建三个函数initArr、printArr、revangeArr,它们的形参都需要接收数组的首地址和大小,因此都需要定义两个形参(*pArr、len)。

2.1 initArr的作用是获取键盘输入的值并通过循环遍历进数组

2.2 printArr的作用是将数组中的元素遍历并打印出来;

3.3 revangeArr的作用是将数组中的元素进行逆序存放。

3.3.1 逆序存放的思路:

首先我们要考虑到数组中元素是奇数个还是偶数个,是否这两种情况的算法都不同。

奇数:奇数个元素的话我们就需要定到中间那个元素,且这个元素不需要交换。举个例

arr[5]={11,22,33,44,55},这个数组中间那个元素是33,对应下标是2,因此只需要 定义一个 i < len/2,j=len-1-i。如下图:

偶数:偶数的元素思路与奇数一样,同样是定位到中间,如下图:

因此,不管奇数还是偶数个元素的数组,利用循环时需要的条件都一致。有了这个思路,那么就只需要再定义一个变量用于值交换时的媒介即可

3.由于都是对数组地址进行操作,因此函数不需要返回值,函数类型就可以是空类型void。

4.在main函数中调用这三个函数就能得到对应的结果

具体代码如下图:

具体编译结果如下图:

相关推荐
FakeOccupational16 分钟前
【数学 密码学】量子通信:光的偏振&极化的量子不确定性特性 + 量子密钥分发 BB84算法步骤
算法·密码学
ZhengEnCi2 小时前
S10-蓝桥杯 17822 乐乐的积木塔
算法
贾斯汀玛尔斯2 小时前
每天学一个算法--拓扑排序(Topological Sort)
算法·深度优先
大龄程序员狗哥2 小时前
第25篇:Q-Learning算法解析——强化学习中的经典“价值”学习(原理解析)
人工智能·学习·算法
exp_add32 小时前
质数相关知识
算法
小辉同志3 小时前
215. 数组中的第K个最大元素
数据结构·算法·leetcode··快速选择
小O的算法实验室4 小时前
2025年IEEE TITS,基于矩阵的进化计算+面向无线传感器网络数据收集无人机路径规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
OidEncoder4 小时前
编码器分辨率与机械精度的关系
人工智能·算法·机器人·自动化
memcpy04 小时前
LeetCode 2615. 等值距离和【相同元素分组+前缀和;考虑距离和的增量】中等
算法·leetcode·职场和发展
炽烈小老头4 小时前
【 每天学习一点算法 2026/04/22】四数相加 II
学习·算法