C语言判断一个整数数组中有无两个数相等

用C语言 编写判断一个整数数组中有没有两个数相等

img

#include <stdio.h>
int main()
{
    int j,k,n=10;
    int t[10]={1,2,3,4,5,5,6,7,8,9};
    for( j=0; j<10 ; j++)
    {
        for( k=0; k<10 ; k++)
        {
            if(t[j]==t[k]&&j!=k)
            {
                printf("数组中有两个数相等\n");
                printf("两个相等的数为:%d\n",t[j]);
                return 1;
            }
        }
    }
    printf("数组中有没有两个数相等\n");
    return 0;
}
int    num[20];
char     k=0,h =0;  

for(k=0;k<20;k++)
{
    for(h=0;h<20;h++)
    {
        if((num[k]==num[h])&&(k!=h))    
        {
            ........          
        }                
    }        
}

笨办法:两个for循环,依次比较。
哈希:新建一个哈希集合,逐个向集合内添加元素,如果遇到元素未添加成功,则证明存在重复元素。(需要数组里的数据不能太大)
先排序再遍历