Siemano :D
Stawiam pierwsze kroki z instrukcją switch case w języku C. No i dostało mi się do wykonania takie oto zadanie:
"Napisz program, który pobierze od użytkownika liczbę całkowitą X, a następnie wyświetli komunikat postaci: "X is positive", w przypadku, gdy liczba będzie większa od zera; "X is negative", w przypadku, gdy liczba będzie mniejsza od zera; oraz "X is equal to 0" w przypadku gdy wpisana liczba będzie zerem lub "incorrect input" w przypadku podania błędnych danych przez użytkownika. Zamiast X należy podstawić wartość wprowadzonej liczby. W programie nie używaj instrukcji warunkowej if. W programie wolno użyć tylko jednej instrukcji switch. W przypadku wprowadzenia przez użytkownika błędnych danych program powinien zakończyć się kodem błędu 1."
No dobra, czyli warunki zrobienia tego zadania to:jeden switch i brak if-ów. No i właśnie... zrobiłem to zadanie, ale złamałem obydwa te warunki. :U
Oto kod, który napisałem:
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
int X,x,Xu,status;
printf("Podaj liczbe calkowita X:");
status=scanf("%d",&X);
x=0;
Xu=(X>x);
switch(status)
{
case 0:
printf("Incorrect input");
return 1;
case 1:
switch(Xu)
{
case 0:
printf("X is negative");
return 0;
case 1:
printf("%s",X == 0 ? "X is equal to zero":"X is positive ");
return 0;
}
}
return 0;
}
Czyli zrobiłem dwa switch-e i także rozpisałem instrukcję warunkową pod postacią
printf("%s", X == 0 ? "X is equal to zero":"X is negative ");
Dobra... pomimo poprawnego działania programu teraz pytanie jest takie. Jak to w takim razie inaczej zapisać, żeby spełnić warunki zadania? O.O