从数组A中删除在数组B中存在的元素,用C语言实现
2014-04-16 12:43
344 查看
从数组A中删除在数组B中存在的元素,用C语言实现
考验数组操作的能力,C语言的熟练程度。
测试代码:
测试结果:
![](http://images.cnitblog.com/i/433384/201404/161240199005484.png)
以上是用最简单,也最容易想到的办法实现的,可能性能不是很好。希望提出改进建议,谢谢
考验数组操作的能力,C语言的熟练程度。
//功能:从数组A中删除在数组B中也存在的数据 //输入:arrA --- 数组A // lenA --- 数组A的长度 // arrB --- 数组B // lenB --- 数组B的长度 //输出:删除后A的长度 int DelAwhichinB(int* arrA, int lenA, int* arrB, int lenB) { //int lenA = sizeof(arrA); //这里是4,自动退化为指针 int ndelcount = 0; //记录有几个被删除 bool bsame = false; //是否存在相同的元素 int j=0; //删除元素后的下标 for (int i=0; i<lenA; i++) { bsame = false; for (int k=0; k<lenB; k++) { if (arrB[k] == arrA[i]) { ndelcount++; bsame = true; break; } } if (false == bsame) { //如果在B中不存在,就放入新数组 arrA[j++] = arrA[i]; } } return (lenA-ndelcount); }
测试代码:
int main(int argc, char* argv[]) { int arrA[9] = {7,2,5,9,10,23,67, 23, 11}; //int arrB[3] = {4, 4, 4}; int arrB[3] = {7, 5, 23}; int arrlen = DelAwhichinB(arrA, 9, arrB, 3); printf("删除后的新数组是: "); for (int i=0; i<arrlen; i++) { printf("%d ", arrA[i]); } }
测试结果:
![](http://images.cnitblog.com/i/433384/201404/161240199005484.png)
以上是用最简单,也最容易想到的办法实现的,可能性能不是很好。希望提出改进建议,谢谢
相关文章推荐
- PHP删除数组空白元素的具体实现方式分享
- 基于JavaScript实现移除(删除)数组中指定元素
- C语言数组和链表删除元素速度比较
- C语言 删除数组 某个元素
- PHP关联数组实现根据元素值删除元素的方法
- 【LeetCode-面试算法经典-Java实现】【026-Remove Duplicates from Sorted Array(删除排序数组中的重复元素)】
- PHP实现删除数组中的特定元素
- 删除数组中重复的元素(C#实现)
- C语言单向动态链表程序,实现链表的建立,合并,重新排序,链表元素的插入与删除,以及根据元素成员的值进行元素删除。
- 实现在一个数组指定位置添加元素和删除元素的功能
- 删除两个升序正数组中重复元素的C程序实现代码
- 删除数组中存在重复的元素。
- Java代码实现删除一个有序数组里面的重复元素
- JavaScript实现删除数组重复元素的5种常用高效算法总结
- 约瑟夫问题 算法很简单保证每个人都能看懂用的是模拟现实 用数组实现 利用循环删除数组中的元素
- c语言心得-----数组中对元素的操作排序,查找,插入,和删除
- C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- c语言实现对传统单链表的创建、添加 遍历 删除 反转元素操作