????用指针判断是否两个数组是否有相同的数字,有的话输出相同数字

/*
*Copyright(c) 2014 烟台大学计算机学院
*All rights reserved.
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作    者:杨汉宁
* 完成日期:2014年 12 月 11 日
* 版 本 号:v1.0
*
* 问题描述:用指针判断是否两个数组是否有相同的数字,有的话输出相同数字
* 输入描述:两个数组的值
* 程序输出:NULL  OR  它们相同的值
*/
#include<iostream>
using namespace std;
int sameNum(int *a,int n1,int *b,int n2, int *c);
int main()
{
int a[50];
int b[50];
int c[50];
int i,n1,n2,n3;
cin>>n1>>n2;

for(i=0; i<n1; ++i)
    {
        cin>>a[i];
    }

for(i=0; i<n2; ++i)
    {
        cin>>b[i];
    }

n3=sameNum(a,n1,b,n2,c);
if(n3==0)
cout<<"NULL\n";
else
    {
        cout<<n3<<endl;
        for(i=0; i<n3; i++)
            cout<<c[i]<<" ";
            cout<<endl;
    }
return 0;
}
int sameNum(int *a,int n1,int *b,int n2, int *c)
{
int n=0;
int *p,*q;
for(int *p=a; p<(a+n1); ++p)
for(int *q=b; q<(b+n2); ++q)
if(*p==*q)
    {
        *c=*p;
        c++;
        n++;
    }
return n;
}

时间: 2024-10-16 11:45:53

????用指针判断是否两个数组是否有相同的数字,有的话输出相同数字的相关文章

NX二次开发-算法篇-判断找到两个数组里不相同的对象

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_curve.h> 5 #include <uf_modl.h> 6 #include <vector> 7 #include <uf_disp.h> 8 9 10 UF_initialize(); 11 12 //第一步,创建5条直线 13 UF_CURVE_line_t Coords1; 14 Coords1.start_point[0] = 0.0

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

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

求两个数组的交集

问题: 给你两个排序的数组,求两个数组的交集. 比如: 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

[LeetCode] Intersection of Two Arrays II 两个数组相交之二

Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2]. Note: Each element in the result should appear as many times as it shows in both arrays. The result can be in any ord

用指针判断两个数组是否有相同的数字

/* *Copyright(c) 2014 烟台大学计算机学院 *All rights reserved. * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:杨汉宁 * 完成日期:2014年 12 月 11 日 * 版 本 号:v1.0 * * 问题描述:用指针判断两个数组是否有相同的数字 * 输入描述:无 * 程序输出:YES OR NO */ #include<iostream> usi

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

判断两个数组是否相似

/** * ===================================================== * 请在index.html文件中,编写arraysSimilar函数,实现判断传入的两个数组是否相似.具体需求: * 1. 数组中的成员类型相同,顺序可以不同.例如[1, true] 与 [false, 2]是相似的. * 2. 数组的长度一致. * 3. 类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期

C语言中,为什么指针表达式的值+1.对应的地址值却+4?/为什么两个数组元素的地址相减之差不为地址之差?

在C语言中,我们常常用到的一个运算是让某个变量的值+1. 例如 M = M + 1. 而在实际运用中,我们发现 对于指针进行+1运算,算出来的结果是+4. 如下图 图中我们定义的 变量M 和指针Matrix如下: int M = 3; int* Matrix = {1,2,3}; 可以看到,对于M和 Matrix ,+1运算的效果是不同的. 这个差异是因为C语言的标准中规定了 加法与减法运算对于地址的操作和对于值的操作是不同的,如下文中粗体所示: C89 3.3.6 Additive opera

C#如何判断两个数组相等

/// <summary> /// 数组比较是否相等 /// </summary> /// <param name="bt1">数组1</param> /// <param name="bt2">数组2</param> /// <returns>true:相等,false:不相等</returns> public bool CompareArray(byte[] bt1,