删除一个数组中的第i项

核心算法:从第i项开始,用每一项的后一项来覆盖这一项,到第n-1结束。
然后只输出这n-1项,就出现了类似于删除的效果。
下面是源代码

在这里插入#include<stdio.h>
int shanchu()
{
	int i, n, t,a[99] = { 0 };//定义一个超长的数组,让他们全都初始化为0,这样只需选取其中的一部分使用
	printf("请输入数组长度\n"); //而不用担心数组长度不够的问题
	scanf_s("%d", &i);

	printf("请输入数组;\n");
	for (n = 0; n <= i - 1; n++)//只有知道了数组长度才能用循环输入一个数组,注意:位数=下标-1!!!牢记这一点!!
		scanf_s("%d", a + n);//a+n是a[n]的地址
	printf("请输入要删除的位数:");
	scanf_s("%d", &t);//t和i都是提供一些必要信息的参数,不作为循环变量出现,只控制循环初值和末值和循环次数
	for (n = t - 1; n <= i - 2; n++)//t,i都是位数,故表示下标要-1,但由于要删去一位,故循环到倒数第二位为止,所以最后为i-1-1即i-2
		a[n] = a[n + 1];//采用从删除位到倒数第二位都被赋成下一位的算法,所谓删除其实只是被下一位覆盖了而已
	printf("删除后得到的数组是:");
	for (n = 0; n <= i - 2; n++)//所有输入输出的循环都只用n作为循环控制变量即可,
		printf("%d ", a[n]);
	return 0;
}代码片

运行结果
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值