从数组A中删除在数组B中存在的元素,用C语言实现
从数组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语言实现的更多相关文章
- 剑指Offer:从第一个字符串中删除第二个字符串中出现过的所有字符
// 从第一个字符串中删除第二个字符串中出现过的所有字符 #include <stdio.h> char* remove_second_from_first( char *first, c ...
- LeetCode初级算法之数组:26 删除排序数组中的重复项
删除排序数组中的重复项 题目地址:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ 给定一个排序数组,你需要在 ...
- 4.19——数组双指针——26. 删除有序数组中的重复项 & 27. 删除有序数组中的重复项II & 80. 删除有序数组中的重复项 II
第一次做到数组双指针的题目是80: 因为python的List是可以用以下代码来删除元素的: del List[index] 所以当时的我直接用了暴力删除第三个重复元素的做法,大概代码如下: n = ...
- Leetcode 数组问题:删除排序数组内的重复项
问题描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...
- Java中删除第一个集合中以某某开头的元素,删除第二个集合中以某某结尾的元素,并合并成一个集合
import java.util.ArrayList; import java.util.List; public class Test { public static void main(Strin ...
- [LEETCODE] 初级算法/数组 1.1删除排序数组中的重复项
题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. ...
- 36.在字符串中删除特定的字符[Delete source from dest]
[题目] 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”. ...
- VS2013 删除"附加依赖项"中“继承的值”
经过好几次尝试,都无法在VS2013中直接删除“继承的值”,于是另辟蹊径,找到了一种解决方法. 相对而言,在 VS2010 中干这件事会容易一点,或者说,成功率更高一点,于是,我的思路就是再装一个 V ...
- java 在循环中删除数组元素
在写代码中经常会遇到需要在数组循环中删除数组元素的情况,但删除会导致数组长度变化. package com.fortunedr.thirdReport; import java.util.ArrayL ...
随机推荐
- 利用tensorboard将数据可视化
注:代码是网上下载的,但是找不到原始出处了,侵权则删 先写出visual类: class TF_visualizer(object): def __init__(self, dimension, ve ...
- C语言当中int,float,double,char这四个有什么区别?
区别在以下方面: 一.定义方面: 1.int为整数型,用于定义整数类型的数据 . 2.float为单精度浮点型,能准确到小数点后六位 . 3.double为双精度浮点型,能准确到小数点都十二位 . 4 ...
- CSS学习(5)更多的选择器
1.通配符选择器 * 表示选中所有元素 *{color:red;} 2.属性选择器 根据属性名和属性值选中元素 https://developer.mozilla.org/zh-CN/docs/We ...
- 每天进步一点点------基础实验_08_触发器 :D、T触发器各一
/********************************************************************************* * Company : * Eng ...
- .net core IIS 发布
发布时注意事项: 1.本机安装.net core SDK 2.启动项目预加载 3.应用池配置为 无托管代码 4.设置应用池-->高级设置-->启动模式为:AlwaysRunning 5.在 ...
- animation模块的使用
1.动画的实现-初探 import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncA ...
- 题解 P1717 【钓鱼】
P1717 钓鱼 贪心+堆的方法其他题解已经讲的很清楚了,这里放出萌新简洁的dp做法,如果有正确性问题希望大佬能够指出qwq #include<cstdio> using namespac ...
- Appium-测试失败后获取屏幕截图的方法
最近一直在研究appium,偶尔的机会发现断言后获取屏幕截图.觉得这个方法不错,分享给大家 这样以后在遇到断言,想截图错误屏幕的时候,能够用的上. 1.首先需要2个类,一个是测试类(TestDropL ...
- 放眼全球,关注游戏质量变化:腾讯WeTest发布《2019中国移动游戏质量白皮书》
2019是中国游戏市场,尤其是手游市场称得上是跌宕起伏的一年,同时也是各大厂商推陈出新突破过去的一年.面对竞争激烈的市场,手游厂商们不仅着眼于游戏质量的提升,更是将一众优秀的国产游戏带入到了海外市场, ...
- C#串口通信:MSComm控件使用详解
目 次MSComm控件两种处理通讯的方式CommPort属性RThreshold 属性CTSHolding 属性SThreshold 属性CDHolding 属性DSRHolding 属性Setti ...