Kezdőoldal » Számítástechnika » Programozás » Miért nem működik a Math....

Miért nem működik a Math. Sqrt javaban?

Figyelt kérdés

Hogyan használom a Math.sqrt-t javaban?:D


Írj futtatható programot, ami a parancssorban kapott számokból minden egymást követő három elemből

kiszámolja a számok (mint oldalhosszak) által leírt háromszög területét a Hérón-képlet segítségével (tehát

először az első három szám által meghatározott háromszöget, aztán a második-harmadik-negyedik szám

által meghatározott háromszöget), stb... Tárold el melyik három számból készíthető háromszög területe volt

a legnagyobb, és ezt írd ki az alapértelmezett kimenetre. (Tipp: gyökvonáshoz használd a

Math.sqrt(szam) metódust.) (



public class A1 {


public static void main(String[] args) {

double ter;

double legnagyobb = 0;

int[] oldalak = new int[args.length];

int[] legnagyobbteroldalai = new int[3];

for(int i = 0; i < args.length; i++) {

oldalak[i] = Integer.parseInt(args[i]);

}


for(int i = 0; i < oldalak.length; i++) {

if(i <= (oldalak.length - 3)) {

ter = terulet(oldalak[i], oldalak[i+1], oldalak[i+2]);

System.out.println("Terulet a " + oldalak[i] + " a " + oldalak[i+1] +

" a " + oldalak[i+2] + " oldalakbol: " + ter);

if(ter >= legnagyobb) {

legnagyobb = ter;

legnagyobbteroldalai[0] = oldalak[i];

legnagyobbteroldalai[1] = oldalak[i+1];

legnagyobbteroldalai[2] = oldalak[i+2];

}

}

}

System.out.println("A legnagyobb haromszog a " + legnagyobbteroldalai[0] + ", " + legnagyobbteroldalai[1]+

", " + legnagyobbteroldalai[2] + ", szamokbol kepezheto,\nterulete: " + legnagyobb);



}


public static double terulet(double a, double b, double c) {

double s;

double terulet;

s = ((a+b+c) / 2);

terulet = ( s*(s-a)*(s-b)*(s-c) );

Math.sqrt(terulet);

return terulet;

}



}



2018. ápr. 5. 11:21
 1/2 anonim ***** válasza:
0%
Működik az.
2018. ápr. 5. 11:27
Hasznos számodra ez a válasz?
 2/2 Koplárovics Béci ***** válasza:
95%

Az utolsó két sor helyett:

return Math.sqrt(terulet);

legyen. Ugyanis a Math.sqrt nem a paraméterben megadott változót módosítja, hanem ő maga is visszaad egy értéket. Pl: negy=Math.sqrt(16);

Így te ugyan meghívod a függvény(!), az a semminek visszaadja a terulet változód négyzetgyökét, de a terulet változóval semmit sem csinál.

2018. ápr. 5. 11:31
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!