Răspuns :
Ma gandesc la 2 variante.
Prima este sa folosesti functia swap:
Ce face swap mai exact?Interschimba 2 valori fara alta variabila auxiliara.
In loc de:
aux=b;
b=a;
a=aux;
vei avea swap(a,b)
Bineinteles, ca aplici functia swap pentru vectorul tau:
2)Parcurgi vectorul si cand gasesti un element egal cu 0, il numeri(cu o variabila nr si stergi valoarea, mutand toate elementele vectorului cu o pozitie la stanga.La final, parcurgi vectorul de la ultima pozitie pana la ultima pozitie+nr si adaugi "0".
Spre exemplu, daca ai vectorul:
7 2 0 5 0 4 3 1 0
1)parcugem vectorul, numaram "0" si le stergem
o sa avem
7 2 5 4 3 1
si nr=3.( nr de 0 eliminate)
2)Parcurgem vectorul de inca 3 ori si adaugam la finalul vectorului 3 zerouri(sau cate am eliminat anterior)
Personal recomand a doua varianta.Cea cu swap s-ar putea sa ridice probleme intr-un vector.
Prima este sa folosesti functia swap:
Ce face swap mai exact?Interschimba 2 valori fara alta variabila auxiliara.
In loc de:
aux=b;
b=a;
a=aux;
vei avea swap(a,b)
Bineinteles, ca aplici functia swap pentru vectorul tau:
2)Parcurgi vectorul si cand gasesti un element egal cu 0, il numeri(cu o variabila nr si stergi valoarea, mutand toate elementele vectorului cu o pozitie la stanga.La final, parcurgi vectorul de la ultima pozitie pana la ultima pozitie+nr si adaugi "0".
Spre exemplu, daca ai vectorul:
7 2 0 5 0 4 3 1 0
1)parcugem vectorul, numaram "0" si le stergem
o sa avem
7 2 5 4 3 1
si nr=3.( nr de 0 eliminate)
2)Parcurgem vectorul de inca 3 ori si adaugam la finalul vectorului 3 zerouri(sau cate am eliminat anterior)
Personal recomand a doua varianta.Cea cu swap s-ar putea sa ridice probleme intr-un vector.
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Ne dorim ca informațiile furnizate să vă fi fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Revenirea dumneavoastră ne bucură, iar pentru acces rapid, adăugați-ne la favorite!