[ osmania @ 14.11.2007. 12:43 ] @
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;
}
[ Eurora3D Team @ 14.11.2007. 18:03 ] @
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]
[ osmania @ 15.11.2007. 08:41 ] @
puno hvala eudora...
[ Eurora3D Team @ 16.11.2007. 14:33 ] @
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

[ osmania @ 19.11.2007. 13:35 ] @
kralj si Eudora!!!