| Furti a întrebat:


Deci am nevoie de putin ajutor la informatica.
Imi tot zbat capul de cateva zile bune sa gasesc un mod prin care sa pot insera intr-un vector mai multe elemente deodata.

Am de introdus in vector dupa fiecare numar pozitiv, acelasi numar ce a fost gasit mai mare ca 0... precum e in exemplu:

Pentru n=6... si vectorul (4, -5, 0, 9, 9, -2), dupa executie trebuie sa am n=9 si vectorul sa contina numerele (4, 4, -5, 0, 9, 9, 9, 9, -2).

Am tot incercat dar todeauna ultimele cateva casute imi apareau cu 0... gen (4, 4, -5, 0, 9, 9, 0, 0, 0) sau nu-mi lua numerele mai mici ca 0 and so on.
Cum fac deci sa introduc in vector nu un singur element, ci mai multe in functie de conditia pe care o am? (ahm... stiu doar Pascal, nu am invatat C++ asa ca va rog daca pueti sa-mi explicatii in limbajul Pascal sau in pseudocod).

Va multumesc! ^^

Răspuns Câştigător
| g4mma a răspuns:

//v vectorul
//n numarul de elemente ale vectorului
//i contor pentru vector
//j contor auxiliar

i:=1;
While i(mai mic sau =) n then
begin
if v[i] (mai mare ca) 0 then
begin
n:=n+1;
For j:=n downto i+1 do v[j]:=v[j-1];
i:=i+2;
end;

else i:=i+1;
end;

| Furti explică (pentru g4mma):

Vai, iti multumesc enoorm!

| g4mma a răspuns (pentru Furti):

Cu placere :p

8 răspunsuri:
| AnonimaOk a răspuns:

Buna.
int maint()
{
int n, v[100],i,j;
cin>>n;
for(i=1; i>v[i];
for(i=1; i0)
{n++;
for(j=n; j>=i+1; j--)
v[j]=v[j-1];
}
i++;
}
for(i=1; i

| AnonimaOk a răspuns:

Nu pot pune codul laughing tipic TPU

| AnonimaOk a răspuns:

Parcurgi vectorul de la stanga la dreapta, dupa indicele i sa zicem. Cand gasesti un element care indeplineste conditia faci urmatoarele:
- incrementezi numarul de elemente din vector
- parcurgi dupa j de la dreapta la stanga elementele cu indici de la n la i+1, iar pentru fiecare astfel de componenta parcursa, v de indice j ia valoarea v de indice j-1
- se inchide conditia
Dupa conditie, tot in parcurgerea dupa i, se incrementeaza i.
Sper sa intelegi laughing eu am facut c++ oricum

| Furti explică (pentru AnonimaOk):

La final nu pot sa maresc i-ul din nou daca folosesc structura pentru sad
si-mi apare (4, 4, 4, 4, 4, 4, 4, -5, 0, 9, 9, -2)

| AnonimaOk a răspuns (pentru Furti):

Cum sa nu poti? ma rog acum tu stii mai bine ca mine Pascal dar nu mi se pare logic. In c++ cand faci for ai accolade si bagi acolo toate instructiunile, deci poti strecura si un i ++...
Nu ti se permite ceva gen
pentru i de la 1 la n
afiseaza i, i=i+1
?
Mi se pare stupid. Uite de aia imi place c++.

| Cheess a răspuns:

Pentru i=1, n atunci
citeste v[i]
pentru i=1, n atunci
daca v[i]>0
{
n++
j=n, i+1, j--
v[j]=v[i]
}
i++
pentru i=1, n atunci
afiseaza v[i]

sper ca ti-am fost de ajutor. eu fac c++ de aceea ti-am scris in pseudocod