有两个数组a和b,把a出现在b中的元素删除,且a自己里面重复的元素也删除。

#include "stdafx.h"
int a[] = { 1,2,3,4,5,6,6,5,9,1,2 };
int b[] = {5,6};
int LEN = sizeof(a) / sizeof(a[0]);
void yiwei(int* a,int b) {
for (int i = b;i < LEN ;i++) {
a[i] = a[i + 1];
}

}

int main()
{
for (int i = 0;i < LEN;i++) {
printf("%d\t",a[i] );
}
printf("\n");
for (int i = 0;i < LEN;i++) {
for (int j = i+1;j < LEN;j++) {
if (a[i] == a[j]) {
yiwei(a, j);
LEN--;
}
}
}
for (int i = 0;i < LEN;i++) {
for (int j = 0;j < 2;j++) {
if (a[i] == b[j]) {
yiwei(a, i);
LEN--;
}
}
}
for (int i = 0;i < LEN;i++) {
printf("%d\t", a[i]);
}
printf("\n");
printf("%d", LEN);
getchar();
return 0;
}

时间: 2024-10-11 00:03:22

有两个数组a和b,把a出现在b中的元素删除,且a自己里面重复的元素也删除。的相关文章

将两个数组中的内容进行交换(数组一样大)

数组A和数组B一样大,将两个数据中的内容进行交换.在main函数外编写swap函数进行两个数组内容的交换,再在主函数中调用它可实现两个数组的内容交换. 代码如下: #include<stdio.h> void swap(int arr1[],int arr2[],int len) {      int i;      for(i=0;i<len;i++) {              int temp=arr1[i];          arr1[i]=arr2[i];         

OpenCL入门:(二:用GPU计算两个数组和)

本文编写一个计算两个数组和的程序,用CPU和GPU分别运算,计算运算时间,并且校验最后的运算结果.文中代码偏多,原理建议阅读下面文章,文中介绍了OpenCL相关名词概念. http://opencl.codeplex.com/wikipage?title=OpenCL%20Tutorials%20-%201  (英文版) http://www.cnblogs.com/leiben/archive/2012/06/05/2536508.html (博友翻译的中文版) 一.创建工程 按照OpenCL

如何判断两个数组是否相等?

有两个数组,在不能使用sort()之类内置函数的前提下,怎么判断这两个数组是否相等? $a = array('a','b','c'); $b = array('c','a','b'); $c = array_diff($a,$b); //若返回数组为空,则说明2个数组相同 if (!$c) { echo "这两个数组相等"; }else{ echo "这两个数组不相等"; }

java 数据结构 图中使用的一些常用算法 图的存储结构 邻接矩阵:图的邻接矩阵存储方式是用两个数组来标示图。一个一位数组存储图顶点的信息,一个二维数组(称为邻接矩阵)存储图中边或者弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 实例如下,左图是一个无向图。右图是邻接矩阵表示:

以下内容主要来自大话数据结构之中,部分内容参考互联网中其他前辈的博客. 图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通过表示为G(V,E),其中,G标示一个图,V是图G中顶点的集合,E是图G中边的集合. 无边图:若顶点Vi到Vj之间的边没有方向,则称这条边为无项边(Edge),用序偶对(Vi,Vj)标示. 对于下图无向图G1来说,G1=(V1, {E1}),其中顶点集合V1={A,B,C,D}:边集合E1={(A,B),(B,C),(C,D),(D,A),(A,C)}: 有向图:若

leetcode 4 : Median of Two Sorted Arrays 找出两个数组的中位数

题目: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)). 题意: 两个排序后的数组nums1 和nums2,长度分别是m,n,找出其中位数,并且时间复杂度:O(log(m+n)) 最愚蠢的方法: 两个数组合

C语言:返回两个数组中第一个元素的指针,并输出这个值

// //  main.c //  Pointer_search // //  Created by ma c on 15/8/2. //  Copyright (c) 2015年 bjsxt. All rights reserved. //  要求:通过指针查找,实现比较两个有序数组中的元素,输出两个数组中的第一个相同的元素值. #include <stdio.h> int *searchSameElement(int *a,int *b,int len1,int len2); int ma

数组-06. 找出不是两个数组共有的元素

数组-06. 找出不是两个数组共有的元素(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学) 给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在2行中给出2个整型数组,每行先给出正整数N(<=20),随后是N个整数,其间以空格分隔. 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格.题目保证至少存在一个这样的数字.同一数字不重复

求一维数组中不重叠的两个子数组的最大和

给定一个长度为N的整数数组a,求不重叠的两个子数组的和的最大值. 如a[6]={1, 2, -4, 3, 2, -5}.所取的子数组分别为{1,2}{3, 2}时,两个子数组的和最大,为3+5=8. 这个题目是数组的子数组最大和(即最大连续和)的变形(后面附上了求解子数组最大和的程序). 一种方法是把数组分成两部分([0~i]和[i+1~len-1]),分别求两部分的最大连续和相加,再从中选出最大的.时间复杂度是O(N*N).这种方法在求解最大连续和时会有冗余的计算,需要优化. 第二种方法申请两

求两个数组的交集

问题: 给你两个排序的数组,求两个数组的交集. 比如: A = 1 3 4 5 7, B = 2 3 5 8 9, 那么交集就是 3 5. 思路: 1. 每一次从B数组中取一值,然后在A数组里逐个比较,如果有相等的,则保存.该算法复杂度为 O(MN). M, N 分别为数组 A B 的长度. 2. 因为A B 都排过序,所以,每一次从B数组取值后,可以利用二分查找看是否在数组A里有B所对应的值,这样复杂度变成了O(N lg M). 这里,如果N 比 M 大,可以从A中取值,然后在B中判断是否有A

JS比较两个数组是否相等 是否拥有相同元素

Javascript怎么比较两个数组是否相同?JS怎么比较两个数组是否有完全相同的元素?Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都会返回false <script type="text/javascript"> alert([]==[]); alert([]===[]); </script> 要判断JS中的两个数组是否相同,需要先将数组转换为字符串,再作比较.以下两行代码将返回true <