У меня есть проблема. Я уже сделал часть его, однако я застрял и не знаю точно, что делать дальше.C++ Boolean problem (сравнение между двумя массивами)
Вопрос: «Вам даны два массива из целых чисел, названных A и B. Один содержит AMAXELEMENTS, а другой содержит BMAXELEMENTS. Напишите функцию с булевым значением, которая возвращает true, если в A есть хотя бы одна точка, то же, что и точка в B, и false, если нет совпадения между двумя массивами. "
Два массива составлены мною, я думаю, что если я знаю, как сравнивать два массива, все будет хорошо, и я сможет завершить мою проблему.
Это то, что я до сих пор (я изменил 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
Вам нужно вернуть true, если существует 'i', так что' A [i] == B [i] 'или если есть' i, j', что 'A [i] == B [j ] '? –
Более серьезная проблема заключается в том, что вы переходите через границы массива A! BMAX выше AMAX, и ваш цикл завершит проверку памяти за массивом A, который даже не выделен для него! – LukeN