lista i izlaz ako nema el.

lista i izlaz ako nema el.

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

Kako da onemogucim izlaz iz programa ako u listi ima elemenata.
Trebalo bi da ispise npr "Lista je puna morate je prvo isprazniti" i da ponovo prrikaze kor. meni?

void main() {    cvor  *glava=NULL;    int br;    int opc=0;    int moze=1;    do {       printf("\n\t1. Unos ");       printf("\n\t2. Brisi ");       printf("\n\t3. Ispis ");       printf("\n\t4. Duzina ");       printf("\n\t5. Trazenje ");       printf("\n\t6. Izbaci ");       printf("\n\t0. Kraj ");       printf("\nVas izbor:");       scanf("%d",&opc);       switch(opc) {       case 1: {          printf("Unos broja: ");          scanf("%d",&br);          glava=upisi(glava,br);             } break;          case 2:          glava=brisi(glava);break;       case 3:          ispisi(glava);break;       case 4:          {             int brCv=0;             brCv=duzina(glava);             printf("\nLista se sastoji od %d cvorova",brCv);          }          break;       .                 .                 .                 .                 .                 .       case 0:          {             if(glava){                printf("Lista je puna.Morate prvo osloboditi memoriju.");                moze=0;             }          }          break;       default:          printf("Nema takve opcije!");break;       }        }    while(opc!=0 && moze!=0); }

Probao sam nesto sa ovim moze u while petlji ali ne prolazi vec samo kaze da lista nije prazna i izadje iz programa.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 16 Jun 2005
  • Poruke: 2392
  • Gde živiš: Beograd

Pogledao sam na brzinu, nije mi jasno zasto stavljas moze=0; ako je glava 1, a to znaci da mora da se oslobodi memorija, ako to ostavis tako moze!=0 ti nece biti ispunjeno i ispasce ti iz petlje... To mi je prvo zapalo za oko... Neutral



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

Zato sto kad odaberem neku drugu opciju petlja bi trebala da radi.
Gore sam inic. " int moze =1 " i ako ne odaberem opc za izlaz tj 0.Sve radi OK.

Problem je kad ima el u listi i izaberem 0 tj izlaz , moze=0 trebalo bi da ostane u petlji i da ponovo prikaze meni.

Ne znam dal sam bio bas najjasniji ali ovo je stvarno bas zbunjujuce.
Ukratko treba da radi program sve dok se ne oslobodi memorija.

offline
  • Pridružio: 16 Jun 2005
  • Poruke: 2392
  • Gde živiš: Beograd

Znam da je to samo kad izaberes 0, ali taj case ti je "problematican" jer kao sto si rekao ako je Lista puna program bi trebao da te onemoguci da izadjes tj da ti opet prikaze opcije da bi korisnik oslobodio memoriju... Ali ovako ce ti program uraditi bas suprotno, ako izaberes kraj on te u slucaju da je memorija puna obavesiti da moras da je ispraznis, i onda ce da izadje iz petlje...

ti si napisao: case 0:          {             if(glava){                printf("Lista je puna.Morate prvo osloboditi memoriju.");                moze=0;             }          }          break;

A mislim da si hteo nesto ovako:
case 0:{          if(glava)              printf("Lista je puna.Morate prvo osloboditi memoriju.");          else moze=0; } break;

Ovako ce ti izlaziti iz petlje u slucaju da je glava=0 tj kad ti je memorija slobodna, a kada korisnik mora da je oslobodi samo ce mu izaci obavestenje o tome i opet ce mu se ispisati meni, a mislim da ti ono opc!=0 ne treba jer ce ti tako izlaziti bez obzira sta se desi u case 0 jer ti je odabrana opcija 0. Tako da bi ta linija bila while(moze!=0);

Nadam se da si razumeo i da nisam nesto prevideo...

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

Jeste to je to.
Hvala ti na pomoci Riddler!
Sad sam skontao.A ono opc sad ne treba to je ostalo od ranije.

offline
  • Pridružio: 16 Jun 2005
  • Poruke: 2392
  • Gde živiš: Beograd

Drago mi je da sam mogao da pomognem Wink

Ko je trenutno na forumu
 

Ukupno su 1055 korisnika na forumu :: 36 registrovanih, 4 sakrivenih i 1015 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., ajo baba, Asparagus, Atomski čoban, babaroga, Brana01, CikaKURE, Dimitrise93, DonRumataEstorski, Dorcolac, DPera, hooraay, HrcAk47, ivan1973, jackreacher011011, Još malo pa deda, Karla, Lazarus, LUDI, milenko crazy north, milos.cbr, moldway, naki011, nebidrag, nemkea71, nenad81, NoOneEver Dreams, Romibrat, sasa87, Sirius, Srle993, stegonosa, vathra, W123, zlaya011, |_MeD_|