关于C语言中异或的问题
#include<stdio.h>intmain(){inta,m,n;while(scanf("%d",&a)!=EOF&&a!=0){m=0;for(i=0;i<a;...
#include<stdio.h>
int main()
{
int a,m,n;
while(scanf("%d",&a)!=EOF&&a!=0)
{
m=0;
for(i=0;i<a;i++)
{
scanf("%d",&n);
m=m^n;
}
printf("%d\n",m);
}
}
题目是要求将一串数字中不同的数输出 比如 1 2 3 2 1 输出3
这个m=m^n是什么意思? 为什么这样能达到题目要求? 我的理解是如果输入1 2 3 2 1 这样只能从1开始进行比较循环4次 比到最后没有输出。 求大神指点 找了很久异或的说明都是什么二进制什么的。 展开
int main()
{
int a,m,n;
while(scanf("%d",&a)!=EOF&&a!=0)
{
m=0;
for(i=0;i<a;i++)
{
scanf("%d",&n);
m=m^n;
}
printf("%d\n",m);
}
}
题目是要求将一串数字中不同的数输出 比如 1 2 3 2 1 输出3
这个m=m^n是什么意思? 为什么这样能达到题目要求? 我的理解是如果输入1 2 3 2 1 这样只能从1开始进行比较循环4次 比到最后没有输出。 求大神指点 找了很久异或的说明都是什么二进制什么的。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询