C语言找出数组里只出现一次的数字

文章讲述了两个C++程序片段:第一个使用for循环统计数组中每个元素的出现次数,若为1则视为单身狗;第二个通过异或操作(^)找出数组所有元素的唯一值,作为单身狗的代号。
摘要由CSDN通过智能技术生成

方法一:

int main()

{

    int arr[]={1,2,3,4,5,7,6,7,5,1,2,3,4};

    int i=0;

    int sz=sizeof(arr)/sizeof(arr[0]);

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

    {

        //统计arr[i]在arr数组中出现得次数

        int count=0;

        int j=0;

        for ( j = 0; j < sz; j++)

        {

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

            {

                count++;

            }    

        }

        if (count==1)

        {

            printf("单身狗是:%d\n",arr[i]);

            break;

        }

    }

    return 0;

}

二:找规律(用异或 ^ 的方法)

// 1^1=0;5^5=0

// 0^2=2;0^5=5;

//3^5^3=5

实现

int main()

{

    int arr[]={1,2,3,4,5,1,2,3,4};

    int i=0;

    int ret=0;

    int sz=sizeof(arr)/sizeof(arr[0]);

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

    {

        ret=ret^arr[i];

    }

    printf("单身狗是:%d\n",ret);

    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值