Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

jak porównać liczby w instrukcji switch-case.

Ostatnio zmodyfikowano 2017-08-20 14:51
Autor Wiadomość
Corvette653
Temat założony przez niniejszego użytkownika
jak porównać liczby w instrukcji switch-case.
» 2017-08-20 14:23:42
Mam problem z tym oto fragmentem kodu:

switch ( liczba )
{
    case (liczbaz) :
    ...

muszę sprawić aby case wykonał się gdy:
liczba = liczbaz

2 case:
liczba > liczbaz

3 case:
liczba < liczbaz

liczba i liczbaz są oczywiście zmiennymi typu int.
Z góry dziękuje za pomoc :)
P-164126
pekfos
» 2017-08-20 14:27:20
C/C++
switch( sgn( liczba - liczbaz ) )
{
case - 1: break;
case 0: break;
case 1: break;
}
sgn() to matematyczna funkcja signum. Musisz ją sobie sam napisać.
P-164127
mateczek
» 2017-08-20 14:29:09
lub zrezygnuj z "case", na rzecz zwykłego "if"
P-164128
Corvette653
Temat założony przez niniejszego użytkownika
odpowiedź
» 2017-08-20 14:43:42
nie mogę zrezygnować z case ponieważ zależnie od użytkownika muszą się wykonać trzy różne warianty. a co do sgn to prosiłbym o dokładniejszy post ponieważ nie umiem tego używać.
liczba jest tworzona przez rand (losowo) a liczbaz wpisywana przez użytkownika dlatego musze posługiwać się zmiennymi a nie konkretnymi wartościami.
kompilator wyświetla mi dwa błędy:
1.expected primary-expression before '<' token. przy linijce: case > liczbaz; i case < liczbaz;
2.'liczbaz' cannot appear in a constant-expression. przy wszystkich case.
P-164129
maly7
» 2017-08-20 14:51:46
nie mogę zrezygnować z case ponieważ zależnie od użytkownika muszą się wykonać trzy różne warianty.

Chyba nie zrozumiałem dokładnie, ale dlaczego nie możesz użyć if'a?

C/C++
if( liczba > liczbaz ) {...}
else if( liczba < liczbaz ) {...}
else {...} // liczba == liczbaz
P-164130
« 1 »
  Strona 1 z 1