#include<stdio.h>
int main() {
int arr[] = { 1,2,3,4,5,1,2,3,4 };
int sz = sizeof(arr) / sizeof(arr[0]);//求数组元素个数
for (int i = 0; i < sz; i++) { //遍历循环
int count = 0;
for (int j = 0; j < sz; j++) { //循环比较
if (arr[i] == arr[j]) { //遍历中两元素相等为是否出现两次的判断条件
count++; //如果出现两次,count+1
}
}
if (count == 1) { //因为每次都从第一个元素遍历,与自身相等时count也会+1
printf("%d\n", arr[i]);
}
}
return 0;
}
上面为演示代码
下面为另一种方法,此方法我只想到一半,后面怎么打印出异或后为1的数字这点是看网上学习
先强调此代码中用到的知识点
a^0=a
a^a=0
展示代码
int main()
{
int a[] = { 1,2,3,4,5,1,2,3,4 };
int i = 0;
int sz = sizeof(a) / sizeof(a[0]); //数组元素个数=数组大小
int ret = 0;
for (i = 0; i < sz; i++) //循环每个元素
{
ret = ret^a[i]; //异或每一个元素 ret=0^1^2^3^4^5^1^2....
}
printf("%d\n", ret); //异或结果为5
return 0;
}