用函数封装实现对一个数组增删改查
include <stdio.h>
void Print(int arr[], int n);
void Add(int arr[], int n);
void Delete(int arr[], int n);
void Find(int arr[], int n, int m);
void Change(int arr[], int a, int b, int temp);
int main()
{
int arr[1000] = { 1,2,3 };
int k = 0;
int n = 3;
printf("现在的数组:");
for (int i = 0; i < 3; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
while (1)
{
printf("1.增加元素\n2.删除元素\n3.查找元素\n4.修改元素\n5.退出\n");
scanf_s("%d", &k);
if (k == 5)
{
break;
}
if (k == 1)//增加元素
{
Add( arr, n);
n++;
Print(arr,n);
}
if (k == 2)//删除元素
{
Delete(arr, n);
n--;
//输出修改之后的数组
Print( arr, n);
}
if (k == 3)//查找元素
{
int m;
printf("请输入要查找的元素:");
scanf("%d", &m);
Find(arr, n,m);
}
if (k == 4)//修改数组
{
int a = 0;
int b = 0;
Change( arr, a, b, n);
//输出修改之后的数组
Print(arr, n);
}
}
getchar();
getchar();
return 0;
}
//输出修改后的数组
void Print(int arr[],int n)
{
printf("现在数组元素:");
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
//增加元素
void Add(int arr[],int n)
{
printf("一次只能增加一个元素哦!!!\n");
printf("请输入数组元素:");
int j = 0;
scanf_s("%d", &j);
arr[n] = j;//赋值
}
//删除元素
void Delete(int arr[],int n)
{
int m;
printf("请输入你要删除元素的下标:");
scanf_s("%d", &m);
if (m < 0 || m >= n)
{
printf("输入错误,找不到这个下标!\n");
}
else
{
for (int i = m; i < n - 1; i++)
{
arr[i] = arr[i + 1];
}
}
}
//查找元素
void Find(int arr[],int n,int m)
{
for (int i = 0; i < n; i++)
{
if (arr[i] == m)
{
printf("找到该元素,下标为:%d\n", i);
break;
}
if (i == n - 1)
{
if (arr[i] != m)
{
printf("下标错误,找不到这个元素!\n");
}
}
}
}
//修改数组
void Change(int arr[],int a,int b,int temp)
{
printf("请输入要修改元素的下标:\n");
scanf_s("%d", &a);
if (a<0 || a>temp - 1)
{
printf("下标越界,无法修改!\n");
}
printf("请修改元素的值:");
scanf_s("%d", &b);
arr[a] = b;
printf("\n");
}