Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

problem sa nizovom u C-u

[es] :: C/C++ programiranje :: problem sa nizovom u C-u

[ Pregleda: 3092 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SAFF
Computer Art

Član broj: 49147
Poruke: 161
194.106.187.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon problem sa nizovom u C-u21.05.2006. u 11:33 - pre 217 meseci
problem sa nizovima u C-u
Kako da posle upisana dva niza A i B, kreiram niz C
sledeceg oblika C:{a1,b1,a2,b2,a3,b3 i ukoliko ima vise elemenata u nizu A
nastavlja se niz C: u sledecem obliku C:{a1,b1,a2,b2,a3,b3,a4,b1,a5,b2...
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: problem sa nizovom u C-u21.05.2006. u 12:36 - pre 217 meseci
Prvo moras reci da li je uvek duzina niza A >= B...
Ako je tako kao sto si postavio u zadatku onda mozda moze ovako /NETESTIRANO/

Code:

// obezbedi dvostruku duzinu nizu C, t.j. C=2*A
int c[BROJ_ELEMENATA_NIZA_A*2];

// provera za svaki slucaj da li je A>=B
if ( BROJ_ELEMENATA_NIZA_A >= BROJ_ELEMENATA_NIZA_B )
{
   int i, br=0;

   // "i" je trenutni index u oba niza A i B, "br" je index u novom nizu C
   for ( int i=0; i < BROJ_ELEMENATA_NIZA_A; i++ )
   {
      c[ br ]   = a[ i % BROJ_ELEMENATA_NIZA_A ];
      c[ br+1 ] = b[ i % BROJ_ELEMENATA_NIZA_B ];
      br+=2;
   }
}


Probaj, nisam siguran da nisam nesto prevideo, ali to je to... Uglavnom, modul (%)
ti resava da se krene uzimanje brojeva ispocetka.
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
195.252.85.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: problem sa nizovom u C-u21.05.2006. u 14:04 - pre 217 meseci
Ja sam to skolski pokusao resiti ovako, ali nesto ne stima u cemu je problem nebitno je koliki je niz ako ako je veci on se ponavlja ako je iti ide paralelno sa b pr u nizu A su brojevi:{1,3,5,7,9} a u nizu B:{2,4,6,8} onda bi niz c izgledao ovako :{1,2,3,4,5,6,7,8,9}, nadam se da sam bio jasan!
Code:

for (i=0;i<n;i++)
   {
      C[i]=A[i%n];
      C[i+1]=B[i%m];
      i+=2;
      for(i=0;i<n;i++)
      printf("%d",C[i]);
   }

SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: problem sa nizovom u C-u21.05.2006. u 15:00 - pre 217 meseci
Iz postavke zadatka u tvom prvom postu, iz nizova :
A={1,3,5,7,9}
B={2,4,6,8}
treba da se dobije :
C={1,2,3,4,5,6,7,8,9,2},
a ne :
C={1,2,3,4,5,6,7,8,9}.

U svakom slučaju ovo bi trebalo da ti reši taj problem, pod pretpostavkom da je uvek n >= m:
Code:

for (int i=0; i<n; i++){
C[2*i] = A[i%n];
C[2*i+1] = B[i%m];
}

gde su n i m dužine nizova A i B, redom.
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
194.106.187.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: problem sa nizovom u C-u21.05.2006. u 23:49 - pre 217 meseci
Uredu je ovo: ostaje problem u sledecem "ako je niz B manji od niza A, upisu se elementi iz niza A u niz C i ne vrsi dalji upis ostalih elemenata niza B u niz C"

josh jednom primer:
A niz {1,3,5,7,9,11,13,15,17,19,21} nebitna duzina nizova
B niz {2,4,6,8} nebitna duzina nizova

novoformirani C niz {1,2,3,4,5,6,7,8,9,2,11,4,13,6,15,8,17,2,19,4,21}
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: problem sa nizovom u C-u22.05.2006. u 14:32 - pre 217 meseci
Hmm... a ima li smisla raditi i%n ako je u stvari i uvek manje od n? Evo i kako bi stvari izgledale bez %.

Citat:
ako je niz B manji od niza A, upisu se elementi iz niza A u niz C i ne vrsi dalji upis ostalih elemenata niza B u niz C
Code:
 // ...
    for(i=0,j=0;i<la;i++)
    {
        c[j++] = a[i];
        if(i<lb) c[j++] = b[i];
    }

    // ovde je j duzina c
 // ...


Citat:
josh jednom primer:
A niz {1,3,5,7,9,11,13,15,17,19,21} nebitna duzina nizova
B niz {2,4,6,8} nebitna duzina nizova

novoformirani C niz {1,2,3,4,5,6,7,8,9,2,11,4,13,6,15,8,17,2,19,4,21}
Code:
 // ...
    for(i=0,j=0,k=0;i<la;)
    {
        c[j++] = a[i++];
        if(i!=la) c[j++] = b[k++];

        if(k==lb) k=0;
    }

    // ovde je j duzina c
 // ...

Ipak se ++uje.
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: problem sa nizovom u C-u22.05.2006. u 22:40 - pre 217 meseci
@Mali Misha : Ne sporim ovaj kod koji si ti dao, samo, ja sam se u onom koji sam ja dao, vodio onim koji je on dao

Citat:

Uredu je ovo: ostaje problem u sledecem "ako je niz B manji od niza A, upisu se elementi iz niza A u niz C i ne vrsi dalji upis ostalih elemenata niza B u niz C"

josh jednom primer:
A niz {1,3,5,7,9,11,13,15,17,19,21} nebitna duzina nizova
B niz {2,4,6,8} nebitna duzina nizova

novoformirani C niz {1,2,3,4,5,6,7,8,9,2,11,4,13,6,15,8,17,2,19,4,21}

Nije mi najjasnije šta si hteo ovime da kažeš.

Formulacija zadatka iz tvog prvog posta je :
Citat:

...
sledeceg oblika C:{a1,b1,a2,b2,a3,b3 i ukoliko ima vise elemenata u nizu A
nastavlja se niz C: u sledecem obliku C:{a1,b1,a2,b2,a3,b3,a4,b1,a5,b2...

Dakle, prema formulaciji zadatka, upisivanje niza B kreće ispočetka, a upisivanje niza A se nastavlja, za m>n, tj. :
Code:

a1 ~ b1
a2 ~ b2
a3 ~ b3
// pa onda, ako je već n > m
a4 ~ b1
a5 ~ b2
...

Da li sam pogrešno razumeo zadatak ili možda kod koji sam dao ne vrši posao?

[Ovu poruku je menjao stargazer dana 22.05.2006. u 23:41 GMT+1]
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.9.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: problem sa nizovom u C-u22.05.2006. u 23:59 - pre 217 meseci
Dobro si me razumeo! :]
Ja sam pravio sledece i dobijam uvek za rezultat nesto slicno ali ne i potpuno tacno:] gde gresim....
Code:

if(n>m){
        for(i=0;i<n;i++)
        {
        C[2*i]=A[i%n];
        C[2*i+1]=B[i%m];
        }
        for(i=0;i<n;i++)
        printf("%d",C[i]);
       }
   else    {
        for(i=0;i<m;i++)
        {
        C[2*i]=A[i%n];
        C[2*i+1]=B[i%m];
        }
        for(i=0;i<m;i++)
        printf("%d",C[i]);
       }

SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: problem sa nizovom u C-u23.05.2006. u 07:29 - pre 217 meseci
Jedino u proceni duzine izlaznog niza. U Prvom slucaju bi bila 2*n a u drugom 2*m.
Znaci izlaz za

{1,3,5,7,9,11,13,15,17,19,21}
{2,4,6,8}

bi bio u stvari {1,2,3,4,5,6,7,8,9,2,11,4,13,6,15,8,17,2,19,4,21,6} ?
Ipak se ++uje.
 
Odgovor na temu

milanvla
Srbija

Član broj: 11686
Poruke: 132
195.178.62.*



Profil

icon Re: problem sa nizovom u C-u23.05.2006. u 07:35 - pre 217 meseci
zasto ne uzmes pokazivace?

while (*a && *b) { //ici ce do kraja jednog niza, kad stane ostali su samo elementi drugog
*c = *a;
c++;
*c = *b;
c++;
a++;
b++;
}

while (*a ++) { //ako je ostao samo niz a
*c = *a;
c++;
}

while (*b ++) { //ako je ostao samo niz b
*c = *b;
c++;
}

ovo nije provereno onako iz glave sam ispisao jer nemam kompajelr pri ruci ali trebalo bi da radi uz male popravke
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: problem sa nizovom u C-u23.05.2006. u 22:50 - pre 217 meseci
E, evo kod koji sam kompajlirao i radi prema zahtevima zadatka.

Code:

#include <stdio.h>

int main(){
  const int A[] = {1,3,5,7,9,11};
  const int B[] = {2,4,6,8,10};
  
  int C[12];
  
  for (int i=0; i<6; i++){
    C[2*i] = A[i%6];
    C[2*i+1] = B[i%5];
  }
  
  for (int i=0; i<12; i++){
    printf("%d ", C[i]);
  }
  
  getchar();

  return 0;
}


Pozdrav
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

[es] :: C/C++ programiranje :: problem sa nizovom u C-u

[ Pregleda: 3092 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.