C语言刷题函数2 - 用函数实现数组操作

题目要求:

  1. 实现函数init() 初始化数组为全0
  2. 实现print() 打印数组的每个元素
  3. 实现reverse() 函数完成数组元素的逆置。

一.函数设计原型

1.void init(int arr\[\],int sz); //初始化数组

2.void print(int arr\[\],int sz);//打印数组

3.void reverse(int arr\[\],int sz);//数组逆置

二.初始化函数

代码演示

复制代码
void Init(int arr[], int sz, int set)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		arr[i] = set;//每个位置放0
	}
}

三.打印数组

复制代码
void Print(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);//打印数字和空格
	}
	printf("\n");//换行
}

四.逆置数组(难点)

1.基本思路:把数组开头和结尾的元素互换,让后往中间继续交换,直到所有元素交换完毕。

2.重要变量:

int letf = 0;//左边位置,从第一个元素开始。

int right = 0;//右边位置,从最后一个元素开始。

3.思路:

4.代码:

复制代码
void Reverse(int arr[], int sz)
{
	int left = 0;
	int right = sz - 1;

	//数组转置
	while (left < right)//循环条件,左下标 < 右下标
	{
		int tmp = arr[left];//临时保存左边的值
		arr[left] = arr[right];//把右边的值存放在左边
		arr[right] = tmp;//把临时存放的值放到右边
		left++;
		right--;
	}
}

五.所有代码

复制代码
#include <stdio.h>
void Init(int arr[], int sz, int set)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		arr[i] = set;//每个位置放0
	}
}


void Print(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);//打印数字和空格
	}
	printf("\n");//换行
}


void Reverse(int arr[], int sz)
{
	int left = 0;
	int right = sz - 1;

	//数组转置
	while (left < right)//循环条件,左下标 < 右下标
	{
		int tmp = arr[left];//临时保存左边的值
		arr[left] = arr[right];//把右边的值存放在左边
		arr[right] = tmp;//把临时存放的值放到右边
		left++;
		right--;
	}
}

int main()
{
	int arry[] = { 0,1,2,3,4,5,6,7,8,9 };//定义数组
	int sz = sizeof(arry) / sizeof(arry[0]);//求数组长度
	Print(arry, sz);//打印
	Reverse(arry, sz);//逆置
	Print(arry, sz);//打印
	Init(arry, sz, 0);//变0
	Print(arry, sz);//打印
	return 0;
}

六.运行结果

如果有错误和不全的地方,欢迎大家批评指正。

相关推荐
大白同学4219 小时前
初识Qt——创建第一个Qt项目
开发语言·qt
祈禾9 小时前
计算机组成原理之编译、汇编、链接、解释
开发语言·汇编·笔记·学习
吴声子夜歌9 小时前
正则指引——Ruby
开发语言·正则表达式·ruby
nnerddboy10 小时前
Rust教程06:ESP32-rust环境搭建
开发语言·后端·rust
nnerddboy10 小时前
Rust教程03:函数,控制流与所有权
开发语言·后端·rust
小龙报10 小时前
【优选算法】1.搜索插入位置 2.x的平方根
java·c语言·数据结构·c++·python·算法·蓝桥杯
linux修理工10 小时前
内存占用 99% 且 Java 程序较多的优化建议
java·开发语言
weixin_4604435610 小时前
企业考试系统如何对接OA、钉钉和企业微信?SSO单点登录、组织同步与权限一致性设计
java·开发语言·数据库
nnerddboy10 小时前
Rust教程05:结构体,枚举与模式匹配
开发语言·网络·rust
小小尚@10 小时前
AE脚本-AE Actions v1.1.8 操作动作记录器
开发语言·前端·javascript·jupyter·postman