Zadatak u C-u

B

Bigjr

Gost
Zdravo da li je mozda neko od vas uradio 4.Zadatak iz nizova koji glasi:
Izostavljanje svih elemenata datog niza brojeva koji imaju neku zadatu vrednost.Ne znam dali treba da koristim operatore po bitovima ili ne.Help!!!
 
Pa ovaj kod koji si napisao i ne radi ono sto ti hoces...
Problem je u tome sto ti za brojac niza b[] koristis istu promenljivu (i) kao i za niz a[].
Probaj ovako:
int j = 0;
for (i=0; i<n; i++) {
if (a!=x){
b[j]=a;
j++;
}
}
Ovo bi trebalo da radi.
Ovo su stvarno osnovne stvari (nebitno u kom programskom jeziku) tako da se potrudi da savladas ovo ako planiras da se bavis iole nekakvim programiranjem.
 
Me:
Pa ovaj kod koji si napisao i ne radi ono sto ti hoces...
Problem je u tome sto ti za brojac niza b[] koristis istu promenljivu (i) kao i za niz a[].
Probaj ovako:
int j = 0;
for (i=0; i<n; i++) {
if (a!=x){
b[j]=a;
j++;
}
}
Ovo bi trebalo da radi.
Ovo su stvarno osnovne stvari (nebitno u kom programskom jeziku) tako da se potrudi da savladas ovo ako planiras da se bavis iole nekakvim programiranjem.


Koliko sam ja shvatio, trebaju imati neku zadatu vrednost (x) a ne nemati, pa bi to trebalo da se promeni u nesto ovako:

Kod:
int j=0;
for (int i=0; i<sizeof(a); i++) {
  if (a[i] == x) {
    b[j++]=a[i];
  }
}

Gde su naravno a i b nizovi istog tipa (b bi trebalo da bude iste velicine, za slucaj da su svi elementi u a jednaki x), dok je x vrednost u nizu koju trazis.

Edit:
Upsss... Ne procitah ono 'izostavljanje' :oops: ... Dakle ipak:

Kod:
int j=0;
for (int i=0; i<sizeof(a); i++) {
  if (a[i] != x) {
    b[j++]=a[i];
  }
}
 

Ovaj kod sto sledi posle mog ne izbacuje sve vrednosti iz niza koje su jednake x.I ja sam uspeo da uradim to sto taj kod radi doduse koristio sam malo robustniji kod priznajem, ali i dalje izbacuje samo jednu vrednost koja je jednaka x kao i kod koji sledi posle mog.
 
cekaj, kako ne izbacuje... evo napisi nesto poput:

Kod:
int a[] = {3,4,3,2,6,7,5,3,4,3}, b[10], i, j=0; 

int x = 3; // ono sto zelis da izbacis
  
for (i=0; i<10; i++) {
  if (a[i] != x) {
    b[j++]=a[i];
  }
}

for(i=0; i<j; i++) {
  printf("%d, ", b[i]);
}

Nece biti broja 3 u nizu b...
 

Back
Top