👤

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ăspuns :

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++).

Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!


ID Learners: Alte intrebari