c语言:一组数据中只有一个数字出现了一次。(使用位运算)
2015-11-19 00:55
357 查看
程序:
#include<stdio.h>
int main()
{
int arr[] = { 1,3,3,1,4,9,4,5,5 };
int i = 0;
int len = sizeof(arr) / sizeof(arr[0]);
for (i = 1; i < len; i++)
{
arr[0] = arr[0] ^ arr[i];
//将这组数中所有数取按位或,由于相异为1,相同为0,故位运算剩下为1的就是单数
}
printf("这个单数是:%d", arr[0]);
return 0;
}
结果:
这个单数是:9请按任意键继续. . .
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1714546
#include<stdio.h>
int main()
{
int arr[] = { 1,3,3,1,4,9,4,5,5 };
int i = 0;
int len = sizeof(arr) / sizeof(arr[0]);
for (i = 1; i < len; i++)
{
arr[0] = arr[0] ^ arr[i];
//将这组数中所有数取按位或,由于相异为1,相同为0,故位运算剩下为1的就是单数
}
printf("这个单数是:%d", arr[0]);
return 0;
}
结果:
这个单数是:9请按任意键继续. . .
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1714546
相关文章推荐
- c语言:不使用(a+b)/2这种方式,求两个数的平均值。
- c语言:求1/n!从1到20的和
- c语言:求n!从1到20的和
- c语言:猴子吃桃问题
- c语言:一个球从 100 米高的自由落下,每次落地后反跳回原高度的一半
- c语言:有一个分数序列: 2/1+3/2+5/3+8/5+13/8+… 求出这个数列前 20 项的和
- strcat连接字符串函数
- 【C语言】【面试题】【笔试题】模拟实现数据库中strcmp函数
- c++ 11 多线线程系列-----------使用c++11 lambda创建线程
- python之自动生成C++的父子双向继承关系
- 最近的状况2014-06-18
- C语言 gets()和scanf()函数的区别
- 第一个C函数
- C语言四书五经
- 【C语言】【面试题】【笔试题】模拟实现数据库中strcat函数
- 【C语言】【面试题】【笔试题】模拟实现数据库中strcpy函数
- 【C语言】【面试题】【笔试题】模拟实现数据库中memcpy函数
- 学习笔记5-C语言指针
- C语言:模拟实现strcpy
- 【笔试题】C语言:模拟实现strcat