用函数封装实现对一个数组增删改查

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");

}

posted @ 2020-12-15 11:37  kisfly  阅读(143)  评论(0编辑  收藏  举报