Zufällige Zahl ausgeben?

3 Antworten

Du hast in den Zeilen

x[i] = (long) = (Math.Random() *490) +10);

und

y[i] = (long) = (Math.Random() *490) +10);

jeweils ein "=" zu viel.

Ausserdem heisst die Methode mWn Math.random und nicht Math.Random. (Wir sind ja hier nicht bei C# ^^)

Ändere die beiden Zeilen wi folgt ab:

x[i] = (long)(Math.random() *490) +10);

und

y[i] = (long)(Math.random() *490) +10);

P.S.: Im Text sagst du es sind 5 Zahlen, im Code arbeitest du dann aber mit 6 Stück. Was davon ist denn nun korrekt?

Woher ich das weiß:eigene Erfahrung
Zerfrager 
Fragesteller
 10.01.2019, 22:39

Ich will 5 Zahlen am Ende haben :)

0
Isendrak  10.01.2019, 22:41
@Zerfrager

Dann müsstest du noch die ganzen 6er durch 5er ersetzen und die Zeilen

System.out.println(x[5]);

und

System.out.println(y[5]);

entfernen.

0
Zerfrager 
Fragesteller
 10.01.2019, 22:42
@Isendrak

Hab eich auch gemerkt und verstanden, danke ^^

1
Zerfrager 
Fragesteller
 10.01.2019, 22:41

Und wieso gibst du auch y [i]?

0
Zerfrager 
Fragesteller
 10.01.2019, 22:43
@Isendrak

Aber ich habe doch über y mit a gearbeitet. oder verstehe ich was falsch?

0
Isendrak  10.01.2019, 22:46
@Zerfrager

Whoops, stimmt...Hatt ich übersehen, dass du die Laufvariable für die zweite Schleife anders benannt hast... ^^;;;;

0
Zerfrager 
Fragesteller
 10.01.2019, 22:46

Und ich habe es mal versucht, wie du es geschrieben hast, aber erwartet aber von mir, dass ich nach der Klammer ein Semikolon setze (Also +10;); bei beiden.

0
Isendrak  10.01.2019, 22:48
@Zerfrager

Ach verdammt! Ich hätts besser noch ein weiteres mal Probegelesen... Die Klammer hinter der 10 muss noch weg...

0
Zerfrager 
Fragesteller
 10.01.2019, 22:52

Noch eine letze Frage: Meine nächste Aufgabe ist es, dass z.B. y[0] und x[0] ausgegeben werden, sodass die Zufallszahl von y und x in einer println ausgegeben werden. Wie mache ich das? Ich habe die 5 y gelöscht und bei jeden x (+ y[x]) eingefügt, bekomme aber nur von x augegeben.

0
Isendrak  10.01.2019, 22:56
@Zerfrager

Klingt so, als suchtest du etwas in der Art:

for(int i = 0; i < 5; ++i){
    System.out.print(x[i]);
    System.out.print(" ");
    System.out.println(y[i]);
}

Oder alternativ:

for(int i = 0; i < 5; ++i){
    System.out.printf("%d %d\r\n", x[i], y[i]);
}
0
Zerfrager 
Fragesteller
 10.01.2019, 23:00
@Isendrak

Aufgabe: Laufe über das Array und gib x/y-Pärchen aus. Enthält z.B. x={1,2,3} und y ={1,4,9} soll die Ausgabe auf dem Bildschirm sein: {1,1}, {2,4,}, {3,9}

0
Isendrak  10.01.2019, 23:27
@Zerfrager

Na in dem Fall:

for(int i = 0; i < 5; ++i){
    System.out.printf("{%d,%d},",x[i],y[i]);
}
System.out.println();
0
Zerfrager 
Fragesteller
 11.01.2019, 12:05
@Isendrak

Danke, hat funkioniert. Was bedeutet denn eigendlich ("%d")?

0
Isendrak  11.01.2019, 12:15
@Zerfrager

printf beduetet "Print Formatted". Dabei wird im String, der als erster Parameter übergeben wird für jeden Wert der ausgegeben werden soll eine Formatsequenz erwartet.

Im einfachsten Fall haben die Formatsequenzen das Format (^^): %Typ, wobei für Typ u.a. folgendes eingesetzt werden kann:

  • d: eine (Dezimal-)Zahl ohne Nachkommastellen (int)
  • f: eine (Dezimal-)Zahl mit Nachkommastellen (float)
  • c: ein einzelnes Zeichen (char)
  • s: ein String

Siehe auch: https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax und https://alvinalexander.com/programming/printf-format-cheat-sheet

1

a) Die beiden = nach (long) weg

b) Random klein schreiben

c) beide Imports weglassen

Xenortus  10.01.2019, 22:37

Müssen dir arrays nicht auch noch convertiert werden?

Meine mich zu erinnern, die werden sonst als Objekt ausgegeben.

0
Isendrak  10.01.2019, 22:44
@Xenortus

Würde er versuchen, die Array an sich auszugeben, dann ja.

Da er aber nur die einzelnen Elemente der Arrays ausgibt, nein.

1

Hau die Ausgabe auch in eine Schleife. Wozu der Aufwand, wenns einfacher geht^^

Zerfrager 
Fragesteller
 11.01.2019, 12:05

Schleifen sehen für mich noch ein wenig komliziert aus und damit ich nicht so viel kompliziertes habe, habe ich 2 for schleifen

0