题目要求
创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
//初始化数组
void init(char* arr, int sz)
{
int i = 0;
for (i=0; i<sz; i++)
{
printf ("%d ",arr[i]);
}
printf ("\n");
}
//打印菜单
void menu()
{
printf ("*****************************\n");
printf ("***** 0.exit *****\n");
printf ("***** 1.逆转数组 *****\n");
printf ("***** 2.清空数组 *****\n");
printf ("*****************************\n");
}
//逆置数组
void reverse(char* arr, int sz)
{
int left = 0;
int i = 0;
int right = sz-1;
while (left<right)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
for (i=0; i<sz; i++)
{
printf ("%d ",arr[i]);
}
printf ("\n");
}
//清空数组
void empty(char* arr, int sz)
{
int i = 0;
for (i=0; i<sz; i++)
{
printf ("0 ",arr[i]);
}
printf ("\n");
}
//主函数
int main()
{
char arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
//求数组的大小
int sz = sizeof(arr)/sizeof(arr[0]);
int input = 0;
//调用函数
init(arr, sz);
while(1)
{
menu();
printf ("请选择:>");
scanf ("%d",&input);
switch(input)
{
case 0:
break;
case 1:
reverse(arr, sz);
break;
case 2:
empty(arr, sz);
break;
default:
break;
}
}
system ("pause");
return 0;
}
展示结果如下: