c语言插值与删除算法的实现

今天我们写一个插值算法与删除算法,也就是在一个数组当中的某一个位置插入一个数,其他的元素不变。老样子,我们直接上代码:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	char a[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int b[11];
	int num;//num为插入值
	int Index;//Index为插入下标
	printf("请输入插入值的下标:》");
	scanf("%d", &Index);
	printf("请输入插入值:》");
	scanf("%d", &num);
	for (int i = 0; i < 11; i++)
	{
		if (i < Index)
			b[i] = a[i];//当i不等于插入下标时,直接进行替换
		else if (i == Index)
			b[i] = num;//当i等于插入下标时,令b[Index](即:b[i])等于插入值
		else
			b[i] = a[i - 1];//跳过b[Index],进行替换
		printf("%d\t", b[i]);
	}

	return 0;
}

结果检验:

在第五个元素输入11,其他不变。

那么删除算法也是有异曲同工之妙,要求是在一行一维数组中输入对应数的下标,则对应的数也会删除,如数组{0,1,2,3,4,5,6,7,8,9},输入“10”则会删除“10”对应的元素“9”

老样子,我们直接看代码:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int b1[10] = {0,1,2,3,4,5,6,7,8,9};
	int a1[9] = { 0 };
	int Index;//删除数的下标
	printf("输入你要删除数的下标:>>");
	scanf("%d", &Index);
	for (int i = 0; i < 10; i++)
	{
		if (i < Index - 1)
			a1[i] = b1[i];
		else  
			a1[i] = b1[i + 1];
	}
	for (int i = 0; i < 9; i++)
		printf("%d\t", a1[i]);
}

结果检验:

 当然,我们可以对这个代码进行优化一下,比如可以自己输入原始代码的元素,那么我们可以使用以下代码替换:

for(int i = 0;i < 10; i++)
{
scanf("%d%,&a[i])
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值