Kezdőoldal » Számítástechnika » Programozás » Programozás feladatomban...

Programozás feladatomban segítene valaki?

Figyelt kérdés

Írj egy olyan programot, melyben as felhasználó int értékeket ír be egymás után. A program akkor állítsa le a ciklust, amikor a felhasználó olyan számot ad meg, amely nem pozitív (mint például 0 vagy -17). A ciklus összes lefutása után pedig írja ki a legnagyobb számot.


Eddigi kész programom:

........................................

import java.util.Scanner;

import static java.lang.System.out;


public class IntBekeresekGyak {


public static void main(String[] args) {


Scanner keyboard = new Scanner(System.in);


//out.print("Please type a number: ");

int tipps = keyboard.nextInt();


while (tipps > 0) {

//out.print("Another: ");

tipps = keyboard.nextInt();

}

// a fasdzomat beleverem h nem mukodik

out.println();

out.println("The biggest number: ");


keyboard.close();


}


}

.......................................


Próbálkoztam Math.max(null, tipps)-el, de nem működik.. Már egész sok ideje ez fölött ülök, de a végét, hogy kiírja a legnagyobb számot az nem megy. Ehhez szeretnék segítséget kérni. (Java)


Köszönöm előre is!


2017. nov. 21. 12:03
 1/7 A kérdező kommentje:
Elnézést a megjegyzésért, nem volt szándékos..
2017. nov. 21. 12:05
 2/7 anonim ***** válasza:

Felveszel egy legnagyobb szám változót a ciklus előtt.

Pl max néven.


int tipps = keyboard.nextInt();

max = tipps;


while (tipps > 0) {

//out.print("Another: ");

tipps = keyboard.nextInt();

if (tipps>max)

max = tipps;

}


A ciklus után kiíratod a max-ot.

2017. nov. 21. 12:46
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
Ebből csak az nem látszik, hogy mivel próbálkoztál, mert itt semmilyen számolás nincs a legnagyobb számra.
2017. nov. 21. 12:55
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:

Igen, tudom, hogy nem látszódik, mert már töröltem onnan, de azért ,hogy ne maradjon üresen akkor.


while (tipps > 0) {

//out.print("Another: ");

tipps = keyboard.nextInt();

}


out.println();

out.println("The biggest number: " + Math.max(null, tipps));


És persze, a legelejére az import Math.max-ot beírni.

Így nézett ki amivel én próbálkoztam.

2017. nov. 21. 13:11
 5/7 A kérdező kommentje:

Köszönöm a kész programot, működik, viszont sajnos nem értem a logikáját. (lehet már sokat ültem amúgy is az egész fölött, fáradok..)


Ha nem nagy szívesség, leírnád, hogy miért működik így a program? Mi történik a while cikluson belül az if utasításnál, amiért kint meg kiírja a helyes megoldást?


Köszönöm ezt is előre is!

2017. nov. 21. 13:14
 6/7 anonim ***** válasza:

Ez azért nem működik, mert egy változód van a tipps.

Ezt folyton felülírod az új értékekkel így a max érték elveszik.


"

while (tipps > 0) {

//out.print("Another: ");

tipps = keyboard.nextInt();

}


"


Pl beírod, hogy 3,100,5


Akkor 1. körben tipps=3

Utána tipps = 100

Utána tipps = 5


De amikor 5 lett, akkor csak ez az egy értéke van, ő nem emlékszik arra, hogy korábban 100 is volt.


Így ezzel semmit értelmesebb nem fogsz kapni:

Math.max(null, tipps)



Ezért azt kell csinálni, hogy egy külön változóba elrakod a max-ot.

tipps=3, max=3


Utána a cikluson belül mindig új tippeket kapsz.

tipps = 100, ha ez nagyobb, mint a max, akkor a maxot átírod erre, ha en mnagyobb, akkor a maxhoz nem nyúlsz.

Egy if-el ellenőrződ.


tipps = 100 => max=100

tipps=5 => max marad 100.

2017. nov. 21. 13:21
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:

Hát te nagy király vagy, elsőre felfogtam, nem is volt nehéz!


Most fogom kezdeni a for utasítás témakört!


Kössz szépen mégegyszer!

2017. nov. 21. 13:31

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!