C语言实现,找出一个数组中只出现一次的数

题目:

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现。

思路:

最简单直观的方法,我们用两个for循环,外循环用i,内循环用j表示,数组长度用len表示,外循环执行一次,内循环执行len-1次,逐一比较,如果相等就给count++,外循环一次结束,如果count = 1,说明这个数就出现了一次,打印arr[i]即可

代码如下
#include<stdio.h>
#include<stdlib.h>
void fond(int *arr,int len)
{
    int i = 0;
    int j = 0;
    int cnt = 0;
    for(i = 0;i<len;i++)
    {
        cnt = 0;
        for(j = 0;j<len;j++)
        {

            if(arr[i]==arr[j])
                cnt++;
        }
        if(cnt==1)     //如果cnt = 1,说明这个数出现一次,打印
        {
        printf("%d ",arr[i]);
        }
    }
    printf("\n");
}
int main()
{
    int arr[]={1,2,3,4,5,6,1,2,3,4};
    int len = sizeof(arr)/sizeof(arr[0]);    //求数组长度
    int i = 0;
    for(i = 0;i<len;i++)      //打印原数组
    {
       printf("%d ",arr[i]);
    }
    printf("\n");
    fond(arr,len);
    system("pause");
    return 0;
}

运行结果
这里写图片描述

猜你喜欢

转载自blog.csdn.net/sister_wang0712/article/details/80245261