niz i novi niz

niz i novi niz

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

Pozdrav
Zapeo sam kada radim neke kombinacije sa nizovima.
upitanju je jezik c.
U ovom slucaju zelim da iz jednog niza u novi ubacim samo podatke koji se ne ponavljaju vise od 1. dakle ako je prvi niz 1, 2, 3, 3, 3, 4, da novi niz bude 1, 2, 3, 4
Nesto sam zapeo....
evo kako sam nesto petljao, ali fali zadnji clan.
      for(i = 0; i < x-1; i++) {          for(j = i+1; j < x; j++ ) {             if(niz[i]==niz[j])                break;          }          if(j==x) {                niz1[p++] = niz[i];          }       }
znaci proveravam 0 clan sa sledecim i tako dalje.
Ako j dogura do duzine niza znaci da nije bilo istih clanova i da izvrsi upis...sve to lepo radi, ali kada radi predzadnji i zadnji, po istom ovom principu, upise predzadnji i to je to.... zadnji se ne upisuje.... ?!
kako i njega da upisem ?
nece mozak vise da radi Sad

ah da da dodam da je x naravno duzina niza



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

A gdje je zapelo?

Ovako bi radilo, uglavnom brze nego gornji primjer

 int i, j, p = 0;         for(i = 0; i < x-1; i++) {           for(j = 0; j < p; j++ ) {            if( niz1[j] == niz[i] )                break;          }                  if( niz1[j] != niz[i] )              niz1[p++] = niz[i];       }           //Ispis unikatnih     for(i = 0; i < p; i++) {          printf("%d\n", niz1[i]);     }

A to sto kazes da ti se ne ispisuje zadnji nisi dobro napravio petlju za ispis, vjerovatno si je ovako napisao for(i = 0; i < p-1; i++)
?



offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

cek ovo tvoje nisam ni probao....
ali kazes da je p=0 a posle u for kaze j=0 i j<p ?!

ispis je dobar.....
evo nasao sam gresku ! ! !
umesto for i =0; i < x-1; i++ treba da stavim da ide i do zadnjeg clana niza ! Smile
#include <stdio.h> int main() {        while(1) {       int niz[10],x,i,j, niz1[10],p=0;       do {          printf("Unesite duzinu niza < 10\n");          scanf("%d", &x);       }while(x<1 || x >=10);       printf("Unesite clanove niza\n");       for(i = 0; i < x ; i++) {          scanf("%d", &niz[i]);       }       printf("\nClanovi niza su\n");       for(i = 0; i < x; i++) {          printf("%d\n", niz[i]);       }       for(i = 0; i < x; i++) {          for(j = i+1; j < x; j++ ) {             if(niz[i]==niz[j])                break;          }          if(j==x) {                niz1[p++] = niz[i];          }       }       printf("\nClanovi novog niza su\n");       for(i = 0; i < p; i++) {          printf("%d\n", niz1[i]);       }    }    return 0; }

boze koliko me iscimao taj x-1 ! slep pored ociju.

inace imao bih jos neka pitanja tako da molim modove da ne zakljucavaju temu.... slede malo kasnije pitanja isto vezana za niz
tnx igor86

offline
  • Pridružio: 26 Jul 2004
  • Poruke: 1472
  • Gde živiš: Vojvodina,Zrenjanin

Citat:umesto for i =0; i < x-1; i++ treba da stavim da ide i do zadnjeg clana niza

Kako ovo moze da ti radi? AKo ide do zadnjeg clana niza koji je x bice na kraju da je i=x, a sa drugom petljom j=x+1.Pa kako ih onda uporedjujes kad je x poslednji element??Sta je x+1 Smile

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

pa lepo...
poredim prvi i sledeci....
ako su isti radi se prekid i ne zadovoljava se uslov if(j==x) tako da nema upisa....
zadnji se i ne proverava, vec se samo trpa jer zadovoljava uslov.....
recimo da je prvi clan niza 1, a zadnji isto tako 1.
krene provera i kada dodje da proverava prvi za danjim dolazi do break i nije zadovoljne if... sa prvog se prelazi na drugi clan koji se poredi sa trecim i tako dalje... tako da na kraju taj zanjdi se upisuje bez provere Smile

aj probaj, meni ovo lepo radi..... mislim da nema rupa ?! Razz

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

LaserJat ::AKo ide do zadnjeg clana niza koji je x bice na kraju da je i=x, a sa drugom petljom j=x+1.Pa kako ih onda uporedjujes kad je x poslednji element??Sta je x+1 Smile
Ako mislis na petlju "for(j = i+1; j < x; j++)", u tu petlju ni ne ulazi jer ne zadovoljava uslov "j < x"

offline
  • Pridružio: 26 Jul 2004
  • Poruke: 1472
  • Gde živiš: Vojvodina,Zrenjanin

Bone Collector ::LaserJat ::AKo ide do zadnjeg clana niza koji je x bice na kraju da je i=x, a sa drugom petljom j=x+1.Pa kako ih onda uporedjujes kad je x poslednji element??Sta je x+1 Smile
Ako mislis na petlju "for(j = i+1; j < x; j++)", u tu petlju ni ne ulazi jer ne zadovoljava uslov "j < x"


Da bas na to sam mislio, sad mi je jasno, nisam video uslov j<x

Ko je trenutno na forumu
 

Ukupno su 809 korisnika na forumu :: 7 registrovanih, 0 sakrivenih i 802 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Blair, bpop, Džekson, havoc995, J - 6, superwhy, Zastava