Ho capito perché il codice si bloccava. Avevo creato un ciclo while infinito.
Ho modificato però ora il problema è che mi stampa sempre un vettore nullo:
#include <iostream>
using namespace std;
int main () {
//Initialization:
const int N = 5;
int V1[N] = {2, 3, 2, 1, 4};
int V2[N] = {2, 1, 4, 5, 6};
int V3[N] = {0};
bool check = false;
int posi = 0;
int posj = 0;
//Procedure:
//Checking:
int j = 0, a = 0, b = 0, count = 0, buff = 0;
for (int i = 0; i < N; i++) {
buff = i;
if (V1[i] == V2[j]) {
do
{
V3[j] = V2[j];
a = i;
b = j;
count++;
i++;
j++;
} while (V1[i] == V2[j] && j < N);
if (V1[a + 1] != V2[b + 1]) {
for (int k = 0; k < N; k++) {
V3[k] = 0;
}
j = 0;
count = 0;
i = buff;
}
else {
break;
}
}
}
//Output:
cout << "[ ";
for (int k = 0; k < count + 2; k++) {
cout << V3[k] << " ";
}
cout << "]";
//Termination:
return 0;
}