Avatar
fudy
Člen
Avatar
fudy:

Ahoj lidi,
zkoušel jsem proměnou délku pole a zadávám desetinná čísla(známky nemusí být jen celé číslo), ale někde je chyba, vždy mi to počítá jen součet celých čísel děleno počtem známek a nebere to v úvahu desetinná čísla. Asi jsme lama ale kde je chyba pomóóóóc!

System.out.prin­tln("Zadej počet známek:");
int pocet = Integer.parse­Int(sc.nextLi­ne());
int[] cisla1 = new int[pocet];
for (int i = 0; i < pocet; i++) {
System.out.prin­tf("Zadej %d. znamku: ", i + 1);
cisla1 [i] = (int) Float.parseFlo­at(sc.nextLine());
}
//spocitani prumeru znamek
float soucet = 0;
for (float i : cisla1) {
soucet += i;
}
float prumer = soucet / cisla1.length;
System.out.prin­tf("Prumer znamek je : %f", prumer);

}

Odpovědět 3.3.2014 23:57
co tě nezabije to tě posílí
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na fudy
Jan Vargovský:

wat? ty pracuješ s celými čísly a pak se divíš, že to nepočítá jako desetinná? co třeba mít místo pole intu udělat pole floatu?

 
Nahoru Odpovědět 4.3.2014 0:00
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na fudy
Jan Vargovský:
System.out.println("Zadej počet známek:");
int pocet = Integer.parseInt(sc.nextLine());
float[] cisla1 = new float[pocet];
for (int i = 0; i < pocet; i++) {
System.out.printf("Zadej %d. znamku: ", i + 1);
cisla1 [i] = Float.parseFloat(sc.nextLine());
}
//spocitani prumeru znamek
float soucet = 0;
for (float i : cisla1) {
soucet += i;
}
float prumer = soucet / cisla1.length;
System.out.printf("Prumer znamek je : %f", prumer);

}
 
Nahoru Odpovědět 4.3.2014 0:07
Avatar
fudy
Člen
Avatar
Odpovídá na Jan Vargovský
fudy:

dík za nakopnutí, zkoušel jsem snad vše ale tohle mě nenapadlo. myslel jsem stačí naparsovat jen výsledek co napíšu do sc.nextline, ještě jednou dík za vysvětlení

Nahoru Odpovědět 4.3.2014 0:11
co tě nezabije to tě posílí
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na fudy
Jan Vargovský:

Jde o to, že když to přetypuješ ( to je takovéto pomocí (int)) tak ty načteš číslo jako float a pak mu usekneš desetinnou čárku, takže v paměti už máš jen celá čísla, i když snimi potom zase pracuješ u průměru jako float :)

 
Nahoru Odpovědět 4.3.2014 0:12
Avatar
fudy
Člen
Avatar
Odpovídá na Jan Vargovský
fudy:

asi chápu o čem mluvíš, ale když se učíš sám a nemáš s kým se pohádat(rozuměj: vysvětlování co tím chtěl básník říci) a máš na začátku chybnou myšlenku už není kolikrát cesty zpět, ještě jednou díky

Nahoru Odpovědět 4.3.2014 0:27
co tě nezabije to tě posílí
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na fudy
Jan Vargovský:

Nauč se krokovat a všechny věci ti najednou budou dávat smysl :)

 
Nahoru Odpovědět  +1 4.3.2014 1:32
Avatar
fudy
Člen
Avatar
Odpovídá na Jan Vargovský
fudy:

jsme úplný začátečník věnuju se javě cca 1 měsíc a před tím jsem neměl tušení co je to programování, takže dotaz jak krokovat? ;)

Nahoru Odpovědět 4.3.2014 19:26
co tě nezabije to tě posílí
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na fudy
Jan Vargovský:

V netbeansech nevím, snad přispějí někteří, kteří s java IDE mají nějaké zkušenosti :)

Nějak obecně:
Dáš si někde Break Point - bod, kde se má program zastavit (řádek obvykle zčervená) - dává se většinou tak, že klikneš úplně vlevo na řádek
Krokuješ ve stylu - instrukce po instrukci, nějaká klávesa nato určitě je

Můžeš u toho koukat na stavy proměnných apod. snad ti to takhle nějak pomůže, jestli umíš anglicky tak to najdeš někde pod Debugem v menu :)

Editováno 4.3.2014 19:43
 
Nahoru Odpovědět 4.3.2014 19:43
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 9 zpráv z 9.