Problem sa programom za izmeni redosleda elemenata

2

Problem sa programom za izmeni redosleda elemenata

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Aha, onda nisam bio u pravu. k ce onda biti isto kao i n. Ali zasto? Zar nebi trebalo da bude isto ako stavim k <= n?

Inace, hvala na pomoci. Very Happy



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • Gde živiš: Niš

Napisano: 13 Maj 2014 21:17

crusher ::Nju sam iskoristio da bih posle mogao da dam promenljivi j indeks poslednjeg elementa u nizu a.Tek sada videh ovo i... Shocked

Koji je indeks poslednjeg elementa u nizu od n elemenata? Mr. Green

Dopuna: 13 Maj 2014 21:20

crusher ::Ali zasto? Zar nebi trebalo da bude isto ako stavim k <= n?Pazi, kada k bude jednako n-1, uslov petlje će biti zadovoljen (n-1 < n, zar ne Very Happy). Odmah nakon toga, obzirom da je uslov zadovoljen, brojač se inkrementira (k++). Dakle, k dobija vrednost k + 1 = n - 1 + 1 = n => k = n.

Dopuna: 13 Maj 2014 21:28

Svakako, logika ti je loša. Menjaš jedan element samo sa jednim elementom. Znači, nikako ne možeš da imaš ugnježdene petlje. Ovo što si ti prvobitno napisao menja poziciju jednog elementa (A[i]) sa svim elementima (A[j] unutar ugnježdene petlje). Zbog toga je rezultat nekorektan.

Takođe, ovo je moguće uraditi i na jedan jednostavniji i razumljiviji način, samo ako se pažljivo čita zadatak. Menjaš prvi i poslednji, drugi i pretposlednji itd. Šta u stvari radiš? Praviš odraz u ogledalu (mirror kopija) datog niza, odnosno samo okrećeš redosled elemenata. Redosled menjaš najjednostavnije tako što sve elemente niza prepišeš u pomoćni niz počevši od poslednjeg, a zatim sve elemente iz pomoćnog niza vratiš u početni niz, počevši od prvog (najnormalnije prepišeš niz).

Dakle, nije sve u tome da se samo sedne i da se kuca kod, već treba pre toga malo i razmisliti, uzeti neki konkretan primer, izvrteti, u glavi ili na papiru. Nakon toga, kada se shvati suština, sve ide mnogo lakše. Very Happy



offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Za rešenje ovog zadatka je potrebno da se prođe samo kroz pola niza. Recimo da imamo niz niz sa n elemenata, petlja za rešenje zadatka izgleda ovako:
for (int i = 0; i < n / 2; ++i) {   int tmp = niz[i];   niz[i] = niz[n - i - 1];   niz[n - i - 1] = tmp; }

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • Gde živiš: Niš

Srki, ne prepisuj. LOL

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Hvala svima na pomoci Very Happy Very Happy

Ko je trenutno na forumu
 

Ukupno su 1028 korisnika na forumu :: 42 registrovanih, 5 sakrivenih i 981 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, amaterSRB, babaroga, Bobrock1, bojank, ccoogg123, cer, Denaya, draggan, flash12, Georgius, ginjica, havoc995, ikan, ivica976, kairos, Karla, kihot, krkalon, Luka Blažević, Marko Marković, Mercury, Mi lao shu, Mixelotti, nemkea71, nikoladim, Nobunaga, panzerwaffe, Parker, Recce, royst33, S2M, samsung, savaskytec, Sirius, slonic_tonic, Snorks, Srki94, Sumadija34, Trpe Grozni, Zikapk, šumar bk2