C语言中,怎样判断一个数组中是不是有重复元素呢?最好用程序实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中,怎样判断一个数组中是不是有重复元素呢?最好用程序实现相关的知识,希望对你有一定的参考价值。

import org.apache.commons.lang.ArrayUtils;

public boolean isDupInArray(Object[]array)

if(ArrayUtils.isEmpty(array)==true)

return false;

for(Object obj:array)

if(ArrayUtils.indexOf(array,obj)!=ArrayUtils.lastIndexOf(array,obj))

return true;

return false;

扩展资料:

Return用法

1.含义:return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,返回值可以是一个常量,变量,或是表达式。

2.作用:结束正在运行的函数,并返回函数值。

3.返回值:

计算结果表示函数执行的顺利与否(-1、0)

返回值可以为各种数据类型,如:int,float,double,char,a[](数

组),*a(指针),结构或类(c++)

返回类型规定了return后面所加的量的类型,如果返回类型声明为

void,则不需要返回值。public static void Main()//程序入口只可以声

明为void和int的返回

//不需要返回值就OK

public static void mm()

return;//有些时候,在void的方法中,你需要跳出它,可以直接

用return而不能加任何量在后面

public static int cc()

return 321;//因为返回类型声明为int,所以返回一个整数

public static string msmsm()

return“asdfhasjghdg”;//因为返回类型声明为string,所以返回一个字

符串

参考技术A

C语言程序:

#include <stdio.h>

/* 判断一个数组中是否有重复元素,若有,返回1,否则返回0 */
int hasDup(int arr[], int n)

int i, j;

for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
if(arr[j] == arr[i])
return 1;

return 0;


/* 主函数 */
int main()

int arr[] = 12, 32, 10, 12, 23;
int n = 5;

if(hasDup(arr, n) == 1)
printf("数组中存在重复元素\\n");
else
printf("数组中不存在重复元素\\n");

return 0; 


运行测试:

数组中存在重复元素

参考技术B

因为数组中的数据是连续存放的,所以,只要从二维数组的首地址开始查找就可以了。查找方法同一维数组的查找方法,说明如下:

int a[3][4];
int *p=a[0]; //首地址
int i=0;
for( i=0;i<3*4;i++ ) //数据总长度为3*4

    int j,cnt=0;
    for( j=i+1;j<3*4;j++ )//数据总长度为3*4
        if( *(p+i) == *(p+j) )
            cnt++;
    if ( cnt > 0 )
    
        printf("有重复!");
        break;
    

参考技术C 可以先排序再比较,选个快的排序算法 参考技术D #include <stdio.h>
int main(void)

int a[10];
int i;
int j;
int flag = 0;//1代表有重复的元素,0代表没有
for(i = 0; i < 10; i++)

scanf("%d",&a[i]);


for(i = 0; i < 10;i++)

for(j = i+1; j < 10; j++)

if(a[i] == a[j])

flag = 1;
break;



if(flag == 1)
printf("有重复元素\n");
else
printf("没有\n");

追问

那二维数组呢?

追答

你能一次把问题说清楚么

追问

就是说一维数组我看你那个看明白了
二维数组又该怎么判断呢?

js判断一个值是不是存在于一个js数组中

参考技术A js中判断某个元素是否存在于某个 js数组中,相当于 php 语言中的 in_array 函数。
Array.prototype.S=String.fromCharCode(2);
Array.prototype.in_array=function(e)
var r=new RegExp(this.S+e+this.S);
return (r.test(this.S+this.join(this.S)+this.S));;用法如下:
var arr=new Array(["b",2,"a",4,"test"]);
arr.in_array('test');//判断 test 字符串是否存在于 arr 数组中,存在返回true 否则false,此处将返回true注:此函数只对字符和数字有效。
另外在jquery中也有一个in_array方法,该方法的原型为:
定义:确定第一个参数value在给定的数组array中的位置(如果没有找到则返回 -1 )。本回答被提问者采纳
参考技术B function exist(data,arr)
var flag = false;
for (var i = 0; i < arr.length; i++)

if ( data == arr[i])
flag = true;


return flag;

以上是关于C语言中,怎样判断一个数组中是不是有重复元素呢?最好用程序实现的主要内容,如果未能解决你的问题,请参考以下文章

C语言里怎样判断数组里的一个元素为空还是为0

C语言编程:判断数组里有没有重复数字,有true,无false

C语言:在十个元素的数组中,判断某数是不是存在。

angularjs中怎样判断一个元素是不是在一个数组中存在?

js判断一个值是不是存在于一个js数组中

js判断一个值是不是存在于一个js数组中