在知乎上看到的 一个问题:删除数组中多余的元素

点击打开链接

假设有一个列表:

a = [1, 1, 0, 2, 0, 0, 8, 3, 0, 2, 5, 0, 2, 6]
判断如果a列表中元素'2'前面的一个元素是'0',那么删除这个元素'0',请问该如何操作?


原题是要求用python 写,但我还没学过py,就用C写一写这个程序吧:

/*
我用的方法是将一个数组中符合要求的值挑选出来,放到另一个数组中;
*/
//*********************************************************************
#include<stdio.h>

int main()
{
	int a[] = { 1,2,3,0,9,7,3,0,8,3 ,3,4,0,9,7,0,6,0,0};//原数组
	int b[256] = { 0 };//新数组
	int i = 0;
	int n = 0;
	int *p = 0;
	int *q = 0;
	p = a;
	q = b;//分别存储起始地址;
	n = sizeof(a)/sizeof(a[0]);
//	printf("%d\n", n);   这一行是测试程序,我喜欢自己这样测试中间数据是否正确;
	for (i;i < n ;i++) {
		if (*p != 0) {
			*q = *p;
			q++;
		}//if判断是挑选出符合要求的数值;q++让新数组能一直往后延续;
		p++;
	}
	n = sizeof(b) / sizeof(b[0]);
	i = 0;
	for (i;i < n;i++) {
		if (b[i] != 0) {
			printf("%d", b[i]);
		}
	}//自己增加的输出环节;以便检察是否符合要求;
	return 0;
}
/*现在时间晚了,明天会进行改进,还会提供不用指针的方法;
大家如果有什么好的意见和建议欢迎随时提出!
*/


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值