从数组A中删除在数组B中存在的元素,用C语言实现

考验数组操作的能力,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 = ; //记录有几个被删除
bool bsame = false; //是否存在相同的元素
int j=; //删除元素后的下标 for (int i=; i<lenA; i++)
{
bsame = false;
for (int k=; 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[] = {,,,,,,, , };
//int arrB[3] = {4, 4, 4};
int arrB[] = {, , };
int arrlen = DelAwhichinB(arrA, , arrB, );
printf("删除后的新数组是: ");
for (int i=; i<arrlen; i++)
{
printf("%d ", arrA[i]);
}
}

测试结果:

以上是用最简单,也最容易想到的办法实现的,可能性能不是很好。希望提出改进建议,谢谢

从数组A中删除在数组B中存在的元素,用C语言实现的更多相关文章

  1. 剑指Offer:从第一个字符串中删除第二个字符串中出现过的所有字符

    // 从第一个字符串中删除第二个字符串中出现过的所有字符 #include <stdio.h> char* remove_second_from_first( char *first, c ...

  2. LeetCode初级算法之数组:26 删除排序数组中的重复项

    删除排序数组中的重复项 题目地址:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ 给定一个排序数组,你需要在 ...

  3. 4.19——数组双指针——26. 删除有序数组中的重复项 & 27. 删除有序数组中的重复项II & 80. 删除有序数组中的重复项 II

    第一次做到数组双指针的题目是80: 因为python的List是可以用以下代码来删除元素的: del List[index] 所以当时的我直接用了暴力删除第三个重复元素的做法,大概代码如下: n = ...

  4. Leetcode 数组问题:删除排序数组内的重复项

    问题描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  5. Java中删除第一个集合中以某某开头的元素,删除第二个集合中以某某结尾的元素,并合并成一个集合

    import java.util.ArrayList; import java.util.List; public class Test { public static void main(Strin ...

  6. [LEETCODE] 初级算法/数组 1.1删除排序数组中的重复项

    题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. ...

  7. 36.在字符串中删除特定的字符[Delete source from dest]

    [题目] 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”. ...

  8. VS2013 删除"附加依赖项"中“继承的值”

    经过好几次尝试,都无法在VS2013中直接删除“继承的值”,于是另辟蹊径,找到了一种解决方法. 相对而言,在 VS2010 中干这件事会容易一点,或者说,成功率更高一点,于是,我的思路就是再装一个 V ...

  9. java 在循环中删除数组元素

    在写代码中经常会遇到需要在数组循环中删除数组元素的情况,但删除会导致数组长度变化. package com.fortunedr.thirdReport; import java.util.ArrayL ...

随机推荐

  1. HTML入门归纳--JavaScript

    本人一直在从事.net的开发,界面都是采用的WPF,近期花了一个多月进行HTML前端的学习,在这里呢进行学习总结和归纳. 本系列将主要分为4个模块: 控件 样式 布局 JavaScript 根据多年W ...

  2. RestTemplate-记录

    org.springframework.web.client.RestTemplate 1.从使用功能上看,是一种简化请求响应的工具类,从发送请求,到对返回的结果进行json解析.格式不对会有异常.

  3. 简单json 转换为 map、对象

    1.如果转换的是Map.或者是简单的对象 package com.gc.action; import java.util.Map; import net.sf.json.JSONObject; /** ...

  4. 使用SQL命令行更改数据库字段类型

    ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 添加列 ALTER TABLE students ADD COLUMN address VARCHAR(100) DEFAU ...

  5. go基础_defer

    defer defer是go语言中的关键字 特点:FILO 作用:保障一些申请的资源最终得以释放 func main() { defer fmt.Println("line-1") ...

  6. [PHP]新版的mongodb扩展安装和使用

    旧版的mongo扩展已经不推荐使用了,在php7以上一般是安装和使用新版的mongodb扩展 ubuntu下 apt-get install php-mongodb 例如下面的代码进行了查询和插入集合 ...

  7. springMVC框架在项目中的搭建

    第一步:构建Web项目    第二步:导入所需jar包    第三步:配置前端控制器DispatcherServlet    第四步:编写Controller控制器(也称为Handler处理器)   ...

  8. Codeforces Round #622 (Div. 2) A. Fast Food Restaurant

    Tired of boring office work, Denis decided to open a fast food restaurant. On the first day he made ...

  9. java.lang.String和java.util.NClob互相转换

    //NClob或Clob转String类型 public String clob2Str(NClob nclob) throws Exception { String content = " ...

  10. drat笔记

    安装dart https://www.dartcn.com/install http://www.cndartlang.com/920.html 所有执行的方法都在main里面. main() {} ...