NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Jak rozdělit 2 čísla oddělená mezerou

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Lukáš Kulhánek:20.2.2018 14:08

Potřeboval bych poradit, jak rozdělit dvě čísla rozdělená mezerou. Zadávání je z klávesnice. Když jsem požil split tak mi to hází chybu, že druhý prvek pole není naplněný. Tady je celé zadání:
Na první řádce je uveden počet dvojic. Vstup pokračuje sérií n dvojic celých čísel a, b
(-100000 ≤ (a, b) ≤ 100000), jedna dvojice na jednom řádku a čísla ve dvojici jsou od sebe
oddělena jednou mezerou.

 
Odpovědět
20.2.2018 14:08
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:20.2.2018 14:32

je hezké, že píšeš zadání, ale kdybys aspoň postnul kód, nebo soutěžíš stylem, že ti sem někdo postne kód a ty ho jen odešleš?:)
a fakt je to zadání napsané takhle? trošku zajímavě matematicky vyjádřeno.

Nahoru Odpovědět
20.2.2018 14:32
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Lukáš Kulhánek:20.2.2018 14:46

Tady je kod a celé zadání:
Vypočtěte postupně hodnoty součinů n dvojic celých čísel a, b.
Vstup
Na první řádce je uveden počet dvojic. Vstup pokračuje sérií n dvojic celých čísel a, b
(-100000 ≤ (a, b) ≤ 100000), jedna dvojice na jednom řádku a čísla ve dvojici jsou od sebe
oddělena jednou mezerou.
Výstup
Pro každou dvojici čísel je uveden na samostatném řádku jejich součin.
Příklad vstupu
3
2 5
51 21
1 -99
Příklad výstupu
10
1071

  • 99
 
Nahoru Odpovědět
20.2.2018 14:46
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:20.2.2018 15:18

jednak v hlavičce kódu máš malinkou chybu - musí ti to zákonitě dělat o jeden krok navíc, protože tam máš menší nebo rovno. Tak buď inicializuj a poprvé na 1, nebo odstraň to rovnítko.

Tak jsem si to zkusil (příště bys prosím mohl ten kód vkládat sem na network, ať to nemusí nikdo pracně přepisovat)
Problém je v tom, že ty voláš nahoře nextInt a pak nextLine
Jenže když dáš entr, ono ti to sice najde i int, ale hned to započítá, jako nový řádek.
Takže oprava je taková:

import java.util.Scanner;

public class Test {
    public Test() {
        Scanner sc = new Scanner(System.in);
        System.out.println("zadejte počet dvojic");
        int y = Integer.parseInt(sc.nextLine());
        for(int i = 0; i < y; i++) {
            System.out.println("Zadejte čísla:");
            String x = sc.nextLine();
            String[] znaky = x.split(" ");
            String cislo1 = znaky[0];
            String cislo2 = znaky[1];
            int c1 = Integer.parseInt(cislo1);
            int c2 = Integer.parseInt(cislo2);
            System.out.println(c1 * c2);
        }
    }
}
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
20.2.2018 15:18
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:20.2.2018 15:20

á pardon, ty tam máš a.... do cyklu se spíš píšou i (jako index)
Jinak to pojmenování si takhle moc nezvykej. Uznávám - je to cvičný kód, ale i tak by sis mohl zvykat na trošku lidštější pojmenovávání. Třeba i v podobě jednoduché věty - IDEčka ti to rády dosadí, kód bude do šířky trošku větší, ale ty se v tom budeš lépe orientovat. To jen taková poznámečka do budoucna;)

Nahoru Odpovědět
20.2.2018 15:20
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Odpovídá na Lubor Pešek
Lukáš Kulhánek:20.2.2018 15:48

Díky moc a chápu že moje pojmenování není zrovna logické psal jsem to narychlo abych to sem mohl dát měl jsem to rozházené když jsem zkoušel jiné věci. A jinak děkuji moc za odpověď a za rady.

 
Nahoru Odpovědět
20.2.2018 15:48
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:20.2.2018 16:16

A bodíky jsou kde?:)

Nahoru Odpovědět
20.2.2018 16:16
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.