instrukcje warunkowe

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")

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));

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 ?

0

po zastosowaniu operatora && ,program podaje bledne wartosci

0

Oczywiście, przecież masz sto procentową pewność że to był jedyny błąd w programie ...

0

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ć...

0

w takim razie dla tych 3 instrukcji jak to powinno wygladac?

0

Napisz co chcesz osiągnąć, bo trzymasz to w tajemnice.

2

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");
}
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

0

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

0

chodzi dokładnie o to by było zrobione ifami

2

To dajesz:

if (((a < 0) + (b < 0) + (c < 0)) == 2)
  puts("1");
else
  puts("0");

I masz ifa.

2
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

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