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

[Zadatak] Sortiranje dva niza i mesanje clanova

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Sortiranje dva niza i mesanje clanova

[ Pregleda: 2115 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

osmania
Panet

Član broj: 26316
Poruke: 773
*.20.11.vie.surfer.at.



+7 Profil

icon [Zadatak] Sortiranje dva niza i mesanje clanova14.11.2007. u 12:43 - pre 200 meseci
imam jedan niz u koji trpam brojeve int maximalno ih ima 50 brojeva.
eh sada ukucam vrjednost x i onda pravim dva niza u kojem jedan niz ima clanove manje od x a u drugom nizu je clanovi vece od x.
znaci fg[] = clanovi veci od x
fk[] = clanovi manji od x

eh sada treba da ispisem prvi clan fg pa onda prvi clan fk i tako sve miksati.. u fk se nalazi 1 2 3 4 5 6 7
a u fg se nalazi 9 10 12
i ja treba da ispisem

1 9 2 10 3 12 4 5 6 7

sve sam sredio ali samo ta funkcija miksanja mi ne radi kako treba:


Code:
#include <iostream>
#include <math.h>
#include <algorithm>

using namespace std;

int main()
{
  int z, i, g=0, k=0, x, a=0;
  int f[51]={0}, fg[50]={0}, fk[50]={0};

  do {
    i = 0;
    cout << "Bitte Zahlen eingeben: ";
    while(1) {
      if(i == 51)
         break;
      cin >> z;
      if(z == 0)
         break;
      f[i] = z;
      i++;
    }
    
    
    cout << "Bitte x eingeben: ";
    cin >> x;
    
    sort (f, f+51);

    for(int j = 0; j <50; j++) {
     /* if (f[j] == x){
       fg[g] = f[j];
         g++;}*/
      
      if(f[j] >= x) {
         fg[g] = f[j];
         g++;
      }else {
         fk[k] = f[j];
         k++;
      }
       }

    for(int j = 0; j <50; j++) {
      if (fg[j] != 0)
      cout<<fg[j]<<" ";
         }
      cout<< endl;
      
    for(int j = 0; j <50; j++) {
      if (fk[j] != 0)
      cout<<fk[j]<<" ";
         }             
      cout<< endl;
    
    
          
   for(int j = 0; j <g; j++)  {              // treba mi samo ova funkcija da proradi i zadatak je gotov hvala vam puno
       cout<<fg[j]<<" ";
      while(a<k) {
          if (fk[a] != 0)
          cout<<fk[a]<<" ";
          a++;
          break;}}  
    
    cout << endl;
    cout << "Nochmals? (0=Abbruch) ";
    cin >> z;
  } while(z != 0);
  return 0;
}
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
195.252.105.*



+7 Profil

icon Re: [Zadatak] Sortiranje dva niza i mesanje clanova14.11.2007. u 18:03 - pre 200 meseci
Ako mozes koristi u kodu neki jezik koji ce vecina da razume (Npr ja ne znam Nemacki i teze mi je da shvatim kako kod radi).
Ovo je ipravljen kod. Primetices deo koji radi ono sto ti je trebalo (nema komentara o tom delu u kodu zato sto smatram da mozes da shvatis princip).
Pozdrav
Code:

#include <iostream>
#include <math.h>
#include <algorithm>

using namespace std;

int main()
{
    int z=1;
    while(z)
    {
        int  i, g=0, k=0, x, a=0;
        int f[51]={0}, fg[50]={0}, fk[50]={0}; // bolje u while petlji zbog sledeceg kruga

        i = 0;
        cout << "Bitte Zahlen eingeben: " << endl;
        while(i < 51)
        {
            cin >> z;
            if(z == 0)
                break;
            f[i] = z;
            i++;
        }

        cout << "Bitte x eingeben: ";
        cin >> x;

        sort (f, f + i);
        int j =0; // bolje ovako , neki kompajleri ne dozvoljavaju visestuko deklarisanje
        while (j <  i) // do i
        {

            if(f[j] >= x)
            {
                fg[g] = f[j];
                g++;
            }
            else
            {
                fk[k] = f[j];
                k++;
            }
            j++;
        }

        // ispis prvog
        for( j = 0; j < k; j++) // do k
        {
            if (fk[j] != 0)
                cout << fk[j] << " ";
        }
        cout<< endl;

        //ispis drugog
        for(j = 0; j <g; j++) // do g
        {
            if (fg[j] != 0)
                cout << fg[j] << " ";
        }
        cout<< endl;

        int gg=0,kk=0,gk=g+k; // ovo je kombinovanje ispisa
        while(gk)
        {
            if (kk < k)
            {
                cout << fk[kk] << " ";
                kk ++;
                gk --;
            }
            if (gg<g)
            {
                cout << fg[gg] << " ";
                gg ++;
                gk --;
            }
        }

        cout << endl;
        cout << "Nochmals? (0=Abbruch) ";
        cin >> z;
    }

    return 0;
}


[Ovu poruku je menjao Eurora3D Team dana 14.11.2007. u 19:13 GMT+1]
 
Odgovor na temu

osmania
Panet

Član broj: 26316
Poruke: 773
*.20.11.vie.surfer.at.



+7 Profil

icon Re: [Zadatak] Sortiranje dva niza i mesanje clanova15.11.2007. u 08:41 - pre 200 meseci
puno hvala eudora...
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.115.*



+7 Profil

icon Re: [Zadatak] Sortiranje dva niza i mesanje clanova16.11.2007. u 14:33 - pre 200 meseci
Ok & drugi put
Usput , vidim da napredujes u programiranju (rapidno ) jel su ti pitanje sve slozenija ...
Moj savet , pitaj vise vezano za c++ a trudi se da logiku sam resavas , zato sto je tu vestina u programiranju.
Svako moze da nauci c++ (cemu sluze keywords i operatori) ali sve je to beskorisno ako ne moze da logicki resi neki konkretan problem.
Npr ako trebas da slozis niz brojeva po velicini prvo uoci princip (sto jednostavniji) sta taj niz cini rastucim npr. Ako je svaki sledeci broj veci od predhodnog (par brojeva) onda je sigurno rastuci. Posle toga to prevedi u c++.
Ovim nisam hteo da kazem da ne rezmisljas , samo hocu da ti dam savet u vezi onoga sto ja mislim da je vazno.
Pozdrav


 
Odgovor na temu

osmania
Panet

Član broj: 26316
Poruke: 773
*.20.11.vie.surfer.at.



+7 Profil

icon Re: [Zadatak] Sortiranje dva niza i mesanje clanova19.11.2007. u 13:35 - pre 200 meseci
kralj si Eudora!!!
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Sortiranje dva niza i mesanje clanova

[ Pregleda: 2115 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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