#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
void fillArray(int arr[], int size, int min, int max)
{
for (int i = 0; i < size; i++)
{
arr[i] = rand() % (max - (min) + 1) + (min);
}
}
void printArray(int arr[], int size)
{
for (int i = 0; i < size; i++)
{
cout << "|" << setw(3) << arr[i];
}
cout << "|" << endl;
}
bool in_array(int *pArr, int n, int elem)
{
for (int i = 0; i < n; ++i)
{
if (pArr[i] == elem)
return true;
}
return false;
}
int main()
{
srand (time(0));
int arr_a [20];
int c_size = 0;
int *arr_c = new int [c_size];
fillArray(arr_a,20,1,9);
printArray(arr_a,20);
for (int i = 0; i < 20; i++)
{
int reqCount = 0;
for (int j = 0; j < 20; j++)
{
if (arr_a [i] == arr_a [j])
{
reqCount++;
}
}
for (int j = 0; j < c_size ; j++)
{
if (reqCount == 2 && in_array(arr_c, c_size, arr_c[i]) != in_array(arr_c, c_size, arr_c[j]))
{
arr_c[c_size++] = arr_a[i];
}
}
}
cout << "Result: " << endl;
printArray (arr_c,c_size);
delete[] arr_c;
return 0;
}
Привет, стек. Мой вопрос по поводу кода выше: почему сейчас я получаю только пустые результаты.
Я чуть не решил это упражнение в одиночку, но была проблема, что мой вывод содержал много дубликатов. Вот почему я создал эту функцию in_array, которая должна проверять, есть ли похожие числа в моем выводе arr_ c.
Но это не работает должным образом. Можете ли вы указать мою ошибку, пожалуйста, чтобы я мог понять, почему она ничего не показывает.
Мой вывод должен содержать только числа, которые существуют только в двух примерах в arr_a.
// Я пытался его найти в Google. Но я не смог найти подобных примеров для моего. Извините, если я не тороплюсь :(