C - instrukcja Switch Case

0

Witam wszystkich,

zaczynam swoją przygodę z programowaniem, na ten moment "zawiesiłem się" na pewnym zadaniu i liczę na podpowiedź.
Mam do zrobienia prosty program, który będzie wczytywał liczbę całkowitą, a następnie wyświetlał informację: większe, mniejsze lub równe zeru.
Warunki: muszę użyć jednego switcha oraz nie mogę używać if.
Myślałem nad warunkiem, który muszę postawić w switchu i nie wiem jak to rozwiązać. Operatory przyjmują wartość logiczną 1 lub 0, więc jeśli to będzie warunek X>0, to bez if lub drugiego switcha nie sprawdzę, czy podana liczba jest zerem, nie wspominając o innych znakach.
Czy operator trójargumentowy będzie w tym przypadku pomocny?
Z góry dziękuję za podpowiedzi.

0

Przecież w jednym switchu możesz mieć sporo case'ów. A ty potrzebujesz chyba trzy.

0
szweszwe napisał(a):

Przecież w jednym switchu możesz mieć sporo case'ów. A ty potrzebujesz chyba trzy.

Dziękuję za odpowiedź.
Oczywiście, natomiast warunek (x>0) przyjmie wartość 1 lub 0, a w ten sposób nie sprawdzę, czy wprowadzono zero jako zmienną.
Dodatkowo muszę sprawdzić, czy nie wprowadzono zmiennej innego typu (np. litery, znaku specjalnego, typu float).

0

Dodatkowo case musi być wartością stałą(?), czyli w następnych krokach nie mogę postawić kolejnych warunków.

1

Warunki logiczne to nie jest najlepszy przykład do stosowania switch - case

4
static char *tb[]=
{
	''Wmiejsza",
	''Rowna",
	''Wieksza",
};
int indeks=(x>0)-(x<0)+1;
switch(indeks)
{
	case 0:
	case 1:
	case 2:
	printf("%s\n",tb[indeks]);
}
0
_13th_Dragon napisał(a):
static char *tb[]=
{
	''Wmiejsza",
	''Rowna",
	''Wieksza",
};
int indeks=(x>0)-(x<0)+1;
switch(indeks)
{
	case 0:
	case 1:
	case 2:
	printf("%s\n",tb[indeks]);
}

Dziękuję za pomoc, teraz tylko trzeba nauczyć się tablic i przeanalizować kod. Dużo nauki przede mną :)
Jeszcze raz dziękuję i życzę wszystkim miłego wieczoru/dnia :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1