这是代码: A [0](在主函数中)应该等于0,而不是1.我找不到我的错误。我想这个问题是在and1函数中的某个地方,但我再次似乎无法找到它。无论如何,我很确定第一句话很好地解决了这个问题,但是网站迫使我写更多的信息。错误输出
#include <iostream>
#include <string>
// V and^or
using namespace std;
int A[] = {0, 1, 1};
int B[] = {1, 0, 1};
int* and1(int A[], int B[])
{
int ret[3];
for(int i = 0; i < 3; i++)
{
if(A[i] == 1 && B[i] == 1)
{
ret[i] = 1;
}
else
{
ret[i] = 0;
}
}
return ret;
}
int* or1(const int A[], const int B[])
{
int ret[] = {0 ,0 ,0};
for(int i = 0; i < 3; i++)
{
if(A[i] == 1 || B[i] == 1)
{
ret[i] = 1;
}
else
{
ret[i] = 0;
}
}
return ret;
}
int main()
{
int* a = and1(A, B);
int* b = or1(A, B);
if(*(a+1) == *(b+1))
{
cout << a[0] << endl;
}
return 0;
}
如果你不能找到你的错误,然后做调试 – nabroyan 2013-03-09 07:46:12
你为什么不通过合成阵列作为第三PARAM和结果存储在它并返回void返回指向本地阵列中的OR1和AND1 – AnatolyS 2013-03-09 07:46:59
?这就是将原型更改为void和1(int * A,int * B,int * ret),对于or1也是如此。这将确保您所做的更改存储在结果中。 – IcyFlame 2013-03-09 07:51:06