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

 我来答
问明6E
高粉答主

2019-05-29 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:13万
展开全部

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,所以返回一个字

符串

}

老冯文库
2017-06-15 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部

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; 
}


运行测试:

数组中存在重复元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2015-12-27 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6475万
展开全部

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

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;
    }
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
曲速泡J
2018-11-16
知道答主
回答量:53
采纳率:33%
帮助的人:8.9万
展开全部
可以先排序再比较,选个快的排序算法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
447587096
2015-12-27 · TA获得超过5047个赞
知道大有可为答主
回答量:2504
采纳率:70%
帮助的人:1184万
展开全部
#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");

}
更多追问追答
追问
那二维数组呢?
追答
你能一次把问题说清楚么
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式