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;
}

六.运行结果

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

相关推荐
apocelipes19 小时前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
LDR00616 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术16 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园16 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob16 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享16 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.16 天前
C语言--day30
c语言·开发语言
玖玥拾16 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
何以解忧,唯有..16 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽16 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言