在计蒜客oj用c++编写的一个简单的代码出现段错误

浏览:40日期:2023-04-06

问题描述

在计蒜客oj用c++编写的一个简单的代码出现段错误

在计蒜客oj用c++编写的一个简单的代码出现段错误

#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

相关文章: