首先我们要创建一个整形数组
用init()实现函数初始化数组为全0,但初始化为0之后不要进行数组逆置,因为数组全为0了之后逆置就没有意义了。
用print() 打印数组的每个元素
用reverse() 函数完成数组元素的逆置。
初始化部分:
void init(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
arr[i] = 0;
}
}
打印部分:
void print(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
函数的逆置:先定义两个变量,left和right,把其分为两个部分,然后利用while循环进行交换,判断条件是left<right,如果大于了函数就终止循环。
逆置部分:
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 print(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
//初始化数组
void init(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
arr[i] = 0;
}
}
//数组倒序
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 arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
print(arr, sz);
//初始化
init(arr, sz);
print(arr, sz);
//逆序
reverse(arr, sz);
print(arr, sz);
return 0;
}