题目:
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现。
思路:
最简单直观的方法,我们用两个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;
}
运行结果