C语言编程题7.21————找单身狗

C语言编程题7.21————找单身狗_第1张图片

#include
int main(){
	int i = 0, j = 0;
	int arr[] = { 1, 2, 3, 4, 5, 1, 2, 3, 4 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++){
		int count = 0;
		for (j = 0; j < sz; j++){
			if (arr[i] == arr[j]){
				count++;
			}
		}if (count == 1){
			printf("单身狗:%d", arr[i]);
			break;
		}
	}return 0;

 这是一个比较笨的方法一个一个比较

接下来,还有一个简便的算法。

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main(){
	int arr[] = { 1, 2, 3, 4, 5, 1, 2, 3, 4 };
	int ret = 0, i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);//这里是计算数组大小有几个元素
	for (i = 0; i < sz; i++){
		ret = ret^arr[i];//让他们一一异或就可以找出单身狗来。
	}
        printf("单生狗=%d", ret);
	return 0;

}

C语言编程题7.21————找单身狗_第2张图片

只要两个数相同他们异或就为0,不管位置如何,他们一一异或后,就可以找出单个的单身狗来。 

你可能感兴趣的:(C语言,c语言)