In limbajul C++, sa se afiseze intersectia a doi vectori stfel inact numerele sa se repete o singura data (daca in ambii vectori se gaseste acelasi numar, atunci in vectorul rezultata se va afisa o singura data)
Ce este in neregula cu urmatorul cod?
#include
using namespace std;
int main(){
ifstream fin("in");
ofstream fout ("out");
long long int v[100000], n, w[100000], m, c[100000], p=0;
fin >> n;
for (int i = 0; i< n; i++)
fin >> v[i];
fin >> m;
for ( int i =0; i< m; i++)
fin >> w[i];
for (int i = 0; i< n; i++)
{
bool gasit= false;
for (int j= 0; j
if ( v[i] == w[j])
{
gasit = true;
break;
}
if (gasit)
c[p++] = v[i++];
}
for (int i = 0; i< p; i++)
fout << c[i] << " ";
fin.close();
fout.close();
return 0;}
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
Explicație: c[p++] = v[i], nu v[i++]. Variabila din bucla for se incrementează și la final. Pentru ce o incrementezi de 2 ori? Ca să sari peste unele din elementele vectorului? Al doilea for este incomplet. Se scrie for(j = 0; j < m; j++).
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Studii sociale,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Informatică,
9 ani în urmă
Limba română,
9 ani în urmă