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,所以返回一个字
符串
参考技术AC语言程序:
#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语言编程:判断数组里有没有重复数字,有true,无false