题目:设计两个函数,1.使之内容初始化为1-9;2.使之实现数组逆转
首先,这是对数组都初始化一个值并打印
那么,如果我想把数组元素初始化成0-9应该怎样改呢?
我们只需要传参时每次改变一个val的值就可以了,利用for循环,不难写成这样:
所以此时我们需要改变调用Init函数中的len的值
接下来我们就来逆转数组
对于一个一维数组,想要逆转数组元素,我们只需要找到起始位置,和数组的最后位置,是两者之间进行元素的交换,然后左侧往右,右侧往左,直到左侧和右侧相遇。
#include <stdio.h>
void Init2(int arr[], int i, int val)
{
arr[i] = val;
}
void Print(int arr[], int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void Reverse(int arr[], int len)
{
int i = 0;
int j = len;
int tep = 0;
while (i < j)
{
tep = arr[i];
arr[i] = arr[j];
arr[j]=tep;
i++;
j--;
}
Print(arr, len);
}
int main()
{
int arr[10] = { 0 };
int len = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < len; i++)
{
Init2(arr, i, i);
}
Print(arr, len);
Reverse(arr,len);
return 0;
}