Javában kellene megoldani a feladatot, valaki meg tudja mondani hogy miért nem működik a kód legvége?
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ű!");
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.
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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!