這是代碼: 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