问题描述
#include<iostream>using namespace std;int main(void){ char a[50],b[50],ch; int i = 0,j = 0; cin.get(ch); while(ch != ’n’) {a[i] = ch;i++;cin.get(ch); } // getchar(); cin.get(ch); while(ch != ’n’) {b[j] = ch;j++;cin.get(ch); } // getchar();for(int n = 0;n < i;n++) {if(a[n] == ’1’ && b[n] == ’1’){ cout << ’1’;}else if(a[n] == ’1’ && b[n] == ’0’){ cout << ’0’;}else if(a[n] == ’0’ && b[n] == ’1’){ cout << ’0’;}else{ cout << ’1’;} }return 0;}
样例输入没有错误,只是一直说是段错误,求大神看看
问题解答
回答1:把a[50],b[50]都改成a[51] 和 b[51]应该就行了吧
回答2:其实如果使用异或判断的话就不用数组了,先异或再取反。
!(1 ^ 1) = 1!(1 ^ 0) = 0!(0 ^ 1) = 0!(0 ^ 0) = 1