Mam prawdopodobnie banalne pytanie:
dlaczego ta instrukcja nie działa poprawnie
if (a>0) if (b>0) if (c<0) printf("1");
else printf ("0");
chodzi dokładnie o wyrazenie po else (np. jak wpiszemy -1 -10 5 to program jest niemy zamiast wypisać "0")
Mam prawdopodobnie banalne pytanie:
dlaczego ta instrukcja nie działa poprawnie
if (a>0) if (b>0) if (c<0) printf("1");
else printf ("0");
chodzi dokładnie o wyrazenie po else (np. jak wpiszemy -1 -10 5 to program jest niemy zamiast wypisać "0")
if(a>0 && b>0 && c<0) printf("1"); else printf ("0");
lub:
printf ((a>0 && b>0 && c<0)?"1":"0");
lub:
printf("%d",a>0 && b>0 && c<0);
lub:
putc('0'+(a>0 && b>0 && c<0));
if (a>0) if (b<0) if (c>0) printf("1");
else printf("0");
if (a<0) if (b>0) if (c>0) printf("1");
else printf("0");
if (a>0) if (b>0) if (c<0) printf("1");
else printf ("0");
a dlaczego z tych 3 instrukcji ,dwie dzialaja prawidlowo tylko trzecia nie ?
po zastosowaniu operatora && ,program podaje bledne wartosci
Oczywiście, przecież masz sto procentową pewność że to był jedyny błąd w programie ...
dlaczego ta instrukcja nie działa poprawnie
if (a>0) if (b>0) if (c<0) printf("1");
else printf ("0");
Ludzie, nawiasujcie wyrażenia. Tobie chodzi o to:
if (a>0) {
if (b>0) {
if (c<0) {
printf("1");
}
}
} else {
printf ("0");
}
A masz:
if (a>0) {
if (b>0) {
if (c<0) {
printf("1");
} else {
printf("0");
}
}
}
po zastosowaniu operatora &&, program podaje bledne wartosci
Masz błąd. Tyle mogę powiedzieć po podanych informacjach (program daje złe wartości
).
A operator && działa poprawnie (dziwne by było gdyby nie), tylko trzeba go dobrze użyć...
w takim razie dla tych 3 instrukcji jak to powinno wygladac?
Napisz co chcesz osiągnąć, bo trzymasz to w tajemnice.
Sam nie opanowałeś podstawowej instrukcji sterującej, a od nas oczekujesz, żebyśmy telepatycznie wyczytali z Twoich myśli jak ma ten program działać na podstawie nędznej wskazówki w postaci tego kawałka kodu. Za mało wymagasz od siebie w stosunku do tego co wymagasz od nas.
Zgaduję, że chodzi Ci o to, że jeżeli wszystkie warunki są spełnione to wypisz 1, w przeciwnym wypadku 0.Tutaj bardzo pomocny jest operator logiczny AND:
if (a > 0 && b > 0 && c < 0)
{
printf("1");
}
else
{
printf ("0");
}
Chodzi o program który wypiszę jeden jeśli dokładnie dwie z trzech liczb sa wieksze od zera , a zero w pozostałych przypadkach
^jesli powielam pańską instrukcję dla pozostałych to podaję mi błedne wyniki
Można ifami (if ... else if... else) to zrobić, ale można i tak:
int count = 0;
if (a > 0) count++;
if (b > 0) count++;
if (c > 0) count++;
if (count == 2)
{
printf("1");
}
else
{
printf ("0");
}
:P
chodzi dokładnie o to by było zrobione ifami
To dajesz:
if (((a < 0) + (b < 0) + (c < 0)) == 2)
puts("1");
else
puts("0");
I masz if
a.
if (a > 0 && b > 0 && c < 0)
{
printf("1");
}
else if (a > 0 && b < 0 && c > 0)
{
printf("1");
}
else if (a < 0 && b > 0 && c > 0)
{
printf("1");
}
else
{
printf("0");
}
co da się uprościć do:
if (a > 0 && b > 0 && c < 0
|| a > 0 && b < 0 && c > 0
|| a < 0 && b > 0 && c > 0)
{
printf("1");
}
else
{
printf("0");
}
A teraz idź się ucz i nie grzesz więcej :P