我有一個問題要做。我已經做了一些部分,但是我卡住了,不知道下一步該做什麼。C++布爾問題(兩個數組之間的比較)
問題:「給出兩個整數數組,名爲A和B.一個包含AMAXELEMENTS,另一個包含BMAXELEMENTS。編寫一個布爾值函數,返回true,如果A中至少有一個點同在B中的點,而假的,如果有兩個陣列之間不匹配。「
兩個數組都是由我做出了決定,我想如果我知道如何比較兩個數組我會沒事的,我將能夠完成我的問題。
這是我迄今爲止(我改變AMAXELEMENTS到AMAX,並BMAXELEMENTS到BMAX):
#include <iostream>
using namespace std;
int main()
{
const int AMAX = 5, BMAX = 6;
int i;
bool c1 = true, c2 = false;
int A[AMAX] = { 2, 4, 1, 5, 9 };
int B[BMAX] = { 9, 12, 32, 43, 23, 11 };
for (i = 0; i < BMAX; i++)
if (B[i] == A[i]) // <---- I think this part has to look
// different, but I can't figure it out.
cout << c1 << endl;
else
cout << c2 << endl;
return 0;
}
嗯未定義行爲。 – kennytm 2010-05-10 19:42:37
如果存在'i'使得'A [i] == B [i]'或者存在'i,j'使得'A [i] == B [j],您是否需要返回true ]'? – 2010-05-10 19:43:52
這裏更嚴重的問題是,你要超過數組A的範圍! BMAX高於AMAX,你的循環將最終檢查數組A後面的內存,它甚至不會被分配給它! – LukeN 2010-05-10 19:46:26