Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
import java.util.Scanner;
public class Zahlen_Raten
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int zufallsZahl = (int)(Math.random()*90000)+10000; //5-stellige Zufallszahl wird erzeugt.
int eingabe = 0;
int anzahlGleich = 0;
int summe = 0;
System.out.print("Errate die Zahl: ");
eingabe = input.nextInt();
for (int j = 0; j < 5; j++)//Alle 5 stellen der Zufallszahl sollen überprüft werden.
{
int modulo;
modulo = zufallsZahl%10; //Bsp. Zufallszahl = 12345, modulo wäre in dem fall 5
if (modulo == (eingabe%10)) //Modulo Wert der Zufallszahl wird mit dem Modulowert der Eingabe verglichen
{
anzahlGleich++; //Wenn dieser Gleich ist, soll den Anzahl der Gleichen Zahlen erhöht werden
summe = summe + modulo; //Wenn dieser Gleich ist, soll die Summe um den Modulowert erhöht werden
}
eingabe = eingabe/10; //Zahlen durch 10 dividieren, um mit der nächsten Stelle der Zahl fortfahren zu können
zufallsZahl = zufallsZahl/10; //Zahlen durch 10 dividieren, um mit der nächsten Stelle der Zahl fortfahren zu können
}
System.out.println("Anzahl Gleiche Zahlen: " +anzahlGleich);
System.out.println("Summe der Gleichen Zahlen: " +summe);
}
}
Jetzt müsste ich ja um das ganze noch eine Schleife packen, die den Code solange wiederholt,
bis die geratene Zahl der zufällig erzeugten entspricht. Nur leider komm ich einfach nicht drauf
wie die Schleife aussehen muss.
Hatte es schon damit versucht:
Java:
int i = 0;
while(eingabe != zufallsZahl)
{
.......
i++
}
der springt dann aber immer nach dem er das einmal ausgeführt hat aus der Schleife, warum?
Math.random wende ich doch weit vor der Schleife schon an, wann wird diese
Zahl denn erstellt wenn sie beim Beginn der Schleife noch 0 sein soll?
Ich hatte mir das mit der While schleife so gedacht:
Java:
import java.util.Scanner;
public class Zahlen_Raten
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int zufallsZahl = (int)(Math.random()*90000)+10000;
int eingabe = 0;
int i = 0;
while(eingabe != zufallsZahl)
{
int anzahlGleich = 0;
int summe = 0;
System.out.print("Errate die Zahl: ");
eingabe = input.nextInt();
for (int j = 0; j < 5; j++)
{
int modulo;
modulo = zufallsZahl%10;
if (modulo == (eingabe%10))
{
anzahlGleich++;
summe = summe + modulo;
}
eingabe = eingabe/10;
zufallsZahl = zufallsZahl/10;
}
System.out.println("Anzahl Gleiche Zahlen: " +anzahlGleich);
System.out.println("Summe der Gleichen Zahlen: " +summe);
}
}
}
Und wenn jetzt die Zufallszahl vor der Schleife tatsächlich noch 0 ist und er deshalb
nur einmal die Schleife durchläuft, wüsste ich nicht was ich sonst benutzen sollte.....
Die ist nicht VOR der Schleife 0, sondern nach der Schleifen. Wenn du 2/10 rechnest, dann ist es 0. Somit machst du es in der Schleife immer 0.
Du darfst die Ursprüngliche Zufallszahl natürlich NICHT verändern.
Das mag korrekt sein aber eben nicht auf diese bestimmt weise.....
die vorgehensweise mit dem Zufallszahl/10 war eine Vorgabe vom Prof
und eine ähnliche konnte ich nirgends finden, jetzt ist mir natürlich auch
klar warum nicht.
Frage mich nur was er sich dabei gedacht hat^^