Pomoc so switchom v C

Programovacie jazyky, rady, poradňa...
Madeyro
Medium Expert
Medium Expert
Príspevky: 122
Registrovaný: 10 jan 2008, 18:26

Pomoc so switchom v C

Príspevok od používateľa Madeyro »

Som zacinajuci programator a potrebujem vediet, si sa do case dajku vlozit premenne. Myslim to nejako takto:

Kód: Vybrať všetko

switch (e)
           {
           case a:
                {
                prikazy;
                break;
                }  
           case b:
                {
                prikazy;
                break;
                }
           case c:
                {
                prikazy;
                break;
                }  
           case d:
                {
                prikazy;
                break; 
                }
           }
vsetky premenne teda a,b,c,d,e su defiovane ako int.
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Pomoc so switchom v C

Príspevok od používateľa jojinkho »

Ked chce clovek programovat tak musi nieco riesit aj sam napr.
skusit skompilovat program. Potom ked mu napise ze:

Kód: Vybrať všetko

error C2051: case expression not constant
by mu malo dopnut, ze asi nemoze lebo tie premenne musia byt konstanty.
Resp. mozes ale namiesto int pouzijes const int co ti zmeni zase vyznam premennej.
Btw ja osobne som sa este nestretol s pripadom kde by som chcel davat ako case premenne.....
Silent
Star
Star
Príspevky: 555
Registrovaný: 28 apr 2008, 14:03

Re: Pomoc so switchom v C

Príspevok od používateľa Silent »

Madeyro napísal:Som zacinajuci programator a potrebujem vediet, si sa do case dajku vlozit premenne.
Nechapu jaksi co potrebujes. Nemyslis neco ze zadam nejaky int, oznaceny e a podle toho jake cislo jsem zadal se neco ukaze?
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Pomoc so switchom v C

Príspevok od používateľa jojinkho »

Keby to tak myslel tak asi nepcha zbytocne premenne ku case a nie je problem.
Ale fakt naozaj by ma zaujimalo ako to chce pouzit a ako sa da vyuzit premenna pri case.
Madeyro
Medium Expert
Medium Expert
Príspevky: 122
Registrovaný: 10 jan 2008, 18:26

Re: Pomoc so switchom v C

Príspevok od používateľa Madeyro »

Mam zadanie do skoly, kde nam treba naprogramovat jednu hru. premena e mala byt generovana genaratorom nadhodnych cisel a porovnavat s premennymi a,b,c,d. Error vypisalo aj mne, ale mal som tam napisane nieco ine, preto som rozmyslal ci sa to neda nejako spravit... Uz vidim ze nie.
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Pomoc so switchom v C

Príspevok od používateľa jojinkho »

Fakt neviem na co to chces pouzit ale ak to strasne chces tak pouzi IF
konyk87
King
King
Používateľov profilový obrázok
Príspevky: 1709
Registrovaný: 24 okt 2007, 15:56

Re: Pomoc so switchom v C

Príspevok od používateľa konyk87 »

Podľa mňa mu stačí obyčajný switch, len to blbo popísal...

Kód: Vybrať všetko

#include <stdio.h>
#include <stdlib.h>

void main () {
  int e;

  srandom(time(NULL));
	
  e = random() % 5;

  switch(e) {
    case 0:
      printf("0\n");
      break;

    case 1:
      printf("1\n");
      break;

    case 2:
      printf("2\n");
      break;

    case 3:
      printf("3\n");
      break;

    case 4:
      printf("4\n");
      break;

    default:
      break;
  }
}
Madeyro
Medium Expert
Medium Expert
Príspevky: 122
Registrovaný: 10 jan 2008, 18:26

Re: Pomoc so switchom v C

Príspevok od používateľa Madeyro »

Vedel by som to spravit aj s podmienkami (if) ale bolo by to ovela dlhsie, preto som to chel spravit takto. Islo o to, ze je stvorciferne cislo s ciframi a,b,c,d a ja mam to stvorciferne cislo uhadnut. Preto premenne e,f,g,h nacitavam a chem ich porovnat s premenymi a,b,c,d. Budem to musiet teda prerobit na podmienky.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Pomoc so switchom v C

Príspevok od používateľa BX »

Kód: Vybrať všetko

if(e == a) {}
else if(e == b) {}
else if(e == c) ...
O čo je to dlhšie?
Madeyro
Medium Expert
Medium Expert
Príspevky: 122
Registrovaný: 10 jan 2008, 18:26

Re: Pomoc so switchom v C

Príspevok od používateľa Madeyro »

dakujem za pomoc
Napísať odpoveď