题目:
创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。
分析:题目不难,但是这里一定要注意memset函数的使用,是按照一个字节一个字节进行填充的,不是类型,具体参见https://blog.csdn.net/melody_1016/article/details/83479778
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void InitArry(int arr[], int size)
{
//如果想把数组的每一个元素全部初始化为0,则可以采用memset函数初始化
//memset(arr, 0, sizeof(arr[0]) * size);
//如果是把数组的每一个元素初始化为其他数字,则采用for循环的方式
for (int i = 0; i < size; i++)
{
arr[i] = i;
}
}
void EmptyArry(int arr[], int size)
{
memset(arr, 0, sizeof(arr[0]) * size);
}
void ReverseArry(int arr[], int size)
{
int left = 0;
int right = size - 1;
while (left < right)
{
//将数组中的首尾元素交换,直到left与right相等
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
void PrintArry(int arr[], int size)
{
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int a[5];
int _size = sizeof(a) / sizeof(a[0]);
InitArry(a, _size);
PrintArry(a, _size);
//EmptyArry(a, _size);
//PrintArry(a, _size);
ReverseArry(a, _size);
PrintArry(a, _size);
system("pause");
return 0;
}
运行结果:(测试ReverseArry函数)