Я беру жестко закодированную информацию о двух массивах и создаю их объединение, пересечение и различие.
Моя проблема в том, что я не могу напечатать пересечение или разницу в правильном формате.
Я пробовал различные циклы while с операторами for и if, но не могу его получить. Я знаю, что я близок. (Надеюсь)
Основная информация:
int setA[] = {3,4,9,12,13,15};
int setB[] = {1,3,5,7,9};
int lenA = sizeof(setA) / sizeof(setA[0]);
int lenB = sizeof(setB) / sizeof(setB[0]);
Difference(setA, setB, lenA, lenB);
Intersection(setA, setB, lenA, lenB);
void Intersection(int setA[], int setB[], int lenA, int lenB)
{
cout << "AnB = {";
for (int i = 0; i < lenA; i++)
{
for (int j = 0; j < lenB; j++)
{
while(setA[i] == setB[j] && i < lenA - 1)
{
cout << setA[i++] << ", ";
}
if(i < lenA && setA[i] == setB[j])
{
cout << setA[i++];
}
}
}
cout << "}";
cout << endl;
}
void Difference(int setA[], int setB[], int lenA, int lenB)
{
cout << "A - B = {";
for (int i = 0; i < lenA; i++)
{
bool comp = false;
for (int j = 0; j < lenB; j++)
if (setA[i] == setB[j])
{
comp = true;
break;
}
if(!comp)
{
cout << setA[i] << ",";
}
}
cout << "}";
cout << endl;
}
Я хочу, чтобы вывод выглядел следующим образом:
AnB = {3, 9} (пересечение)
A-B = {4, 12, 13, 15} (разница)
Что я получаю:
AnB = {3, 9,} (пересечение)
A-B = {4, 12, 13, 15,} (разница)
Мне просто нужно исправить запятые в конце, но не знаю как.
Извините, если этот вопрос слишком длинный, я не был уверен, как решить мою проблему.