Как сравнить 2 массива одинакового размера со случайными элементами?

Поэтому я пытаюсь выяснить, почему мой счетчик всегда умножается на размер,
вместо небольшого числа, потому что оператор «if», который я использовал, должен увеличивать счетчик только тогда, когда они одинаковы, но, конечно, каждое значение не может быть одинаковым, так как я использовал random. РЕДАКТИРОВАТЬ: Извините, это полный код, который я пытался построить.

#include <iostream>
#include <ctime>
using namespace std;

void arrayList (int array[],int array2[], int size, double times)
{
int counter =0;
for (int k = 0; k < times; k++)
{
for (int i = 0; i < size; i++)
{
array[i] = rand();
array2[i] = rand();
if (array[i] == array2[i])
{
counter = counter + 1;
}
}
}
cout << counter << endl;
}
int main ()
{
srand (1);
double times = 0;
int size;
cout << "Enter number of times: ";
cin >> times;
cout << "Enter minimum number of persons: ";
cin >> size;
int arrays[size];
arrayList(arrays,arrays, size, times);
}

-3

Решение

Вот как я переставил твой код:

#include <iostream>
#include <vector>
#include <ctime>

int arrayList(std::vector<int> array1, std::vector<int> array2, int size, double times)
{
int counter = 0;

for (int k = 0; k < times; k++)
{
for (int i = 0; i < size; i++)
{
array1[i] = rand();
array2[i] = rand();
std::cout << "1st vector: " << array1[i] << " 2nd vector: " << array2[i] << std::endl;
if (array1[i] == array2[i])
{
counter++;
}
}
}
return counter;
}

int main()
{
srand((unsigned)time(NULL));

double times = 0;
int size = 0;

std::cout << "Enter number of times: ";
std::cin >> times;

std::cout << "Enter minimum number of persons: ";
std::cin >> size;

std::vector<int> array(size);
std::cout << arrayList(array, array, size, times);
}

Я использовал векторы вместо массивов (но вы также можете использовать динамически размещаемые массивы).

Пожалуйста, попробуйте и оставьте отзыв!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector