Kezdőoldal » Számítástechnika » Programozás » Javában kellene megoldani a...

Javában kellene megoldani a feladatot, valaki meg tudja mondani hogy miért nem működik a kód legvége?

Figyelt kérdés

Feladat: Kérjük be a felhasználótól, hogy hány valós számot szeretne összeadni, majd sorszámokkal ellátott szöveggel kérjük be egymás után a számokat! Írjuk ki a számok összegét és átlagát! Írjuk ki, hogy hányadik volt a legnagyobb és a legkisebb értékű szám!

A legvégén sajnos nem működik a legkisebb illetve legnagyobb értékű index kiírása, tud valaki segteni benne hogy miért? (természetesen ez előbb sokkal scanner importálva lett, csakis a végén nem működik a legkisebb illetve legnagyobb értéknél)


System.out.println("Hány darab valós számot szeretnél összeadni?");

int a=sc.nextInt();

double osszeg=0;

double atlag=0;

double [] valostomb=new double [a+1];

for (int i = 1; i < valostomb.length; i++) {

System.out.print((i)+". szám: ");

valostomb[i]=sc.nextDouble();

osszeg=osszeg+valostomb[i];

atlag=osszeg/a;

}

System.out.println("Az összeg: "+osszeg);

System.out.println("Az átlag: "+atlag);


double minertek=valostomb[1];

double maxertek=valostomb[1];


for (int i = 1; i < valostomb.length; i++) {

if(minertek>valostomb[i]){

minertek=i;

}

if(maxertek<valostomb[i]){

maxertek=i;}

}

System.out.println("Az "+((int)minertek)+". szám a legkisebb értékű!");

System.out.println("Az "+((int)maxertek)+". szám a legnagyobb értékű!");


2018. márc. 27. 22:22
 1/4 Koplárovics Béci ***** válasza:

A legkisebb és a legnagyobb szám indexét szeretnéd kiírni a végén? Akkor:


int minertek=1;

int maxertek=1;


for (int i = 1; i < valostomb.length; i++) {

if(valostomb[minertek]>valostomb[i]){

minertek=i;

}

if(valostomb[maxertek]<valostomb[i]){

maxertek=i;}

}

System.out.println("Az "+(minertek)+". szám a legkisebb értékű!");

System.out.println("Az "+(maxertek)+". szám a legnagyobb értékű!");


Az eredeti if-ekben te egy indexet akarsz összehasonlítani egy tömbelemmel.

2018. márc. 27. 22:33
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:
És hallelujah, működik!
2018. márc. 27. 22:40
 3/4 A kérdező kommentje:
Oly kérdésem lenne hogy pontosan így mi a különbség az enyém és a tied között? Én megadtam a deklarálásnál illetve inicializálásnál hogy melyik érték legyen a min illetve a max, ahogy nézem te is ugyanazt csináltad annyi hogy mára cikluson belül, vagy pont ez adja meg a különbséget? :)
2018. márc. 27. 22:42
 4/4 anonim ***** válasza:

Ide a 0. elem kell:


"

double minertek=valostomb[1];

double maxertek=valostomb[1];

"


Ez oé, hogy az elsőtől indul, ha a 0-kal inicializálod előtt.

"for (int i = 1; i < valostomb.length; i++) { "


Ehelyett meg "minertek=i; " ez kell, ezt írta az előző:

minertek=valostomb[i];


maxertek-nél ugyanez.

Ha ezeket átírod, akkor működni fog.

2018. márc. 28. 09:58
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!