USTC机试—将文件中输入的两个十进制数字异或后输出二进制到另一个文件中
//算法求解:给两个十进制数先异或然后输出其二进制数字
#include<stdio.h>
#include<stdlib.h>
#define N 100
int main(){
FILE *fp1,*fp2;
fp1=fopen("1.in","r");
fp2=fopen("1.out","w");
int s1,s2;
char str1[N];
char n1[N],n2[N];
while(fscanf(fp1,"%s%s",n1,n2)!=EOF){
s1=atoi(n1);
s2=atoi(n2);
int m=s1^s2;//注此处十进制数字可以直接异或
itoa(m,str1,2);//转化成二进制数字存储在字符串中
/*
或者如下:
int x=0;
while(m/2){
x=x*10+m%2;
m/=2;
}
x=x*10+m%2;
*/
fprintf(fp2,"%s",str1);//输出在字符串中
}
return 0;
}