Problem z zadaniem na Jetbrains.

0

Siemka, jestem w temacie operatorów relacyjnych i w sumie już kończe, ale ostatnie zadanie bardzo mnie męczy i niestety próbuję wykonać go już godzinę, ale bez skutecznie..

Musze napisać program, który ze scannera czyta 3 cyfry i zwraca prawdę, tylko jeśli JEDNA liczba jest dodatnia i niestety kompletnie brakuje mi pomysłow..

http://prnt.sc/13mowo4

Będę wdzięczny za wszelką pomoc ;)

1

Wczytujemy, sprawdzamy.. Bardziej rozwleklej się nie da :D

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int a = scanner.nextInt();
    int b = scanner.nextInt();
    int c = scanner.nextInt();

    if (a > 0 && b <= 0 && c <= 0) {
      System.out.println("true");
    } else if (a <= 0 && b > 0 && c <= 0) {
      System.out.println("true");
    } else if (a <= 0 && b <= 0 && c > 0) {
      System.out.println("true");
    } else {
      System.out.println("false");
    }
}
}

Taki potworek tez dziala: :D

    System.out.println(a <= 0 && b <= 0 && c > 0 ? true : 
                               a > 0 && b <= 0 && c <= 0 ? true : a <= 0 && b > 0 && c <= 0 ? true : false);
1

System.out.println(Stream.of(1, -2, -3).filter(x -> x > 0).count() == 1 ? "true" : "false");
No to na początek streamy :D
Z czasem zrozumiesz ;)

2

Serio studiujesz informatykę i masz problem z tym zadaniem?
Wczytujesz zmienne, liczysz ile jest większych od 0, zwracasz licznik == 1

0

Tutaj dla zachęty rozwiązanie w Haskellu, można prosto przerobić na analogiczne:

import Control.Monad(replicateM)

toInt :: Bool -> Int
toInt True = 1
toInt False = 0

main = do
    numbers <- replicateM 3 (readLn :: IO Int)
    putStrLn $ show $ sum [toInt $ x > 0 | x <- numbers] == 1
0

JS

(-a>>31)+(-b>>31)+(-c>>31)==-1

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