初始化数组前必须得在主函数建立一个数组,否则其他功能的实现无法找到这个数组,因为这个数组只会是在函数里的。
在主函数建立一个数组时,有一个叫malloc的函数,是动态生成空间,顾名思义就是想定义多少空间就多少,很符合这个题意,所以在各个函数中我将数组长度len加为参数。
在主函数中,要用死循环来进行不停的菜单的及其功能的运行。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void menu()
{
printf("-------------------------\n");
printf("------1.初始化数组-------\n");
printf("------2.清空数组---------\n");
printf("------3.数组元素逆置-----\n");
printf("-------------------------\n");
}
void init(int arr[],int n)
{
int i = 0;
printf(“请输入数组\n”);
for (i = 0; i < n;i++)
{
scanf("%d",&arr[i]);
}
printf(“初始化成功! 数组为:\n”);
for (i = 0; i < n; i++)
{
printf("%d “, arr[i]);
}
}
void empty(int arr[],int n)
{
int i = 0;
for (i = 0; i < n; i++)
{
arr[i] = 0;
}
printf(“数组已清空\n”);
}
void reverse(int arr[],int n)
{
int tmp = 0;
int i = 0;
for (i = 0; i < n/2; i++)
{
tmp = arr[i];
arr[i] = arr[n-i-1];
arr[n - i - 1] = tmp;
}
printf(“逆置后为:\n”);
for (i = 0; i < n; i++)
{
printf(”%d “, arr[i]);
}
}
int main()
{
int i = 0;
int *arr1;
int k = 0;
int len = 0;
menu();
printf(“请输入数组元素个数”);
scanf(”%d", &len);
arr1 = (int *)malloc(len);
while (1)
{
printf("\n");
printf(“请选择\n”);
scanf("%d", &k);
switch (k)
{
case 1:
init(arr1,len);
break;
case 2:
empty(arr1,len);
break;
case 3:
reverse(arr1,len);
break;
default:
printf("选择错误");
break;
}
printf("\n");
}
system("pause");
return 0;
}