Arrays befüllen

Hallo, ich habe mal eine Frage. Ich möchte gerne die untere Spalte des Arrays mit eigen Zahlen befüllen, die obere passt so, aber wie bekonmme ich das hin?


int[][] wetterstation = new int[2][14];

for (int i = 0; i < wetterstation.length; i++) {
for (int j = 0; j < wetterstation.length; j++) {
wetterstation[j] = i+1 ;

System.out.print(wetterstation[j] + "\t");
}

System.out.println();
 
int[][] wetterstation = new int[2][14];

for (int i = 0; i < wetterstation.length; i++) {
for (int j = 0; j < wetterstation.length; j++) {
wetterstation[j] = i+1 ;

System.out.print(wetterstation[j] + "\t");
}

System.out.println();
So kann das auch auch nicht funktionieren. Ich verwende immer gerne richtige Namen fuer Schleifenzaehler, weil dann waere dir dein Fehler eher aufgefallen:

Java:
int[][] wetterstation = new int[2][14];

for (int zeilenIndex = 0; zeilenIndex < wetterstation.length; zeilenIndex++) {
    for (int spaltenIndex = 0; spaltenIndex < wetterstation.length; spaltenIndex++) {
        wetterstation[spaltenIndex] = zeilenIndex + 1 ;

        System.out.print(wetterstation[spaltenIndex] + "\t");
    }
}

Man merkt, es fehlt irgendwie irgendwas mit der Zeile. Zwei-Dimensionale Arrays muss man natuerlich auch "zweifach" betreten, einmal fuer jede Dimension:

Java:
int[][] wetterstation = new int[2][14];

for (int zeilenIndex = 0; zeilenIndex < wetterstation.length; zeilenIndex++) {
    for (int spaltenIndex = 0; spaltenIndex < wetterstation[zeilenIndex].length; spaltenIndex++) {
        wetterstation[zeilenIndex][spaltenIndex] = zeilenIndex + 1 ;

        System.out.print(wetterstation[zeilenIndex][spaltenIndex] + "\t");
    }
}

Oder mit einer Zwischenvariable:

Java:
int[][] wetterstation = new int[2][14];

for (int zeilenIndex = 0; zeilenIndex < wetterstation.length; zeilenIndex++) {
    int[] zeile = wetterstation[zeilenIndex];
   
    for (int spaltenIndex = 0; spaltenIndex < zeile.length; spaltenIndex++) {
        zeile[spaltenIndex] = zeilenIndex + 1 ;

        System.out.print(zeile[spaltenIndex] + "\t");
    }
}
 
Man merkt, es fehlt irgendwie irgendwas mit der Zeile.
Das "i" ist ursprünglich mal dagewesen. Allerdings wird [i] als BB-Code für kursiv interpretiert, wenn man den Code nicht in die Code-Tags setzt. Das erkennt man auch daran, dass der Code im Ausgangspost nach der zweiten for-Schleife kursiv geschrieben ist. 😉
 
Zuletzt bearbeitet:
So würde es durchaus funktionieren:

Java:
    public static int[][] fillAndPrint1() {
        int innerDimensionLength = 14;
        int[][] wetterstation = new int[2][innerDimensionLength];

        for (int i = 0; i < wetterstation.length; i++) {
            for (int j = 0; j < wetterstation[i].length; j++) {
                wetterstation[i][j] = i * innerDimensionLength + j;

                System.out.print(wetterstation[i][j] + "\t");
            }
            System.out.println();
        }

        return wetterstation;
    }

Code Tags fügst du folgendermaßen ein: [CODE lang="java" title="Titel"]...[/CODE].
 
Bevor hier unnötig Lösungsvorschläge gemacht werden, wäre es am sinnvollsten auf den korrekten Code des TE zu warten (bei dem die "i" nicht durch die fehlenden Code-Tags entfernt wurden) und vor allem auch zu erfahren, was genau nicht funktioniert, wie gewünscht.
 
Also irgendwie bekomme ich es gar nicht hin, irgendwas zu machen, ich bitte einfach um hilfe. Wie ich arrys in einer Tabelle abspeichere und diese in der Kosnole ausgebe. Ich brauche zwei spalten, also
ICh weiß jetzt nicht ob ich das so richtig gemacht habe mit den arrys abspeichern und erstellen und ich bekomme es nicht hin dies so auszugeben

Tag: 1- 14
Temperatur: verscheidene Werte und ich hatte schon einaml so angefangen:
Java:
int [] [] wetterstation = new int [2] [14];
     
      wetterstation [2] [1] = 15;
      wetterstation [2] [2] = 14;
      wetterstation [2] [3] = 19;
      wetterstation [2] [4] = 7;
      wetterstation [2] [5] = 19;
      wetterstation [2] [6] = 13;
      wetterstation [2] [7] = 10;
      wetterstation [2] [8] = 11;
      wetterstation [2] [9] = 15;
      wetterstation [2] [10] = 28;
      wetterstation [2] [11] = 6;
      wetterstation [2] [12] = 17;
      wetterstation [2] [13] = 19;
      wetterstation [2] [14] = 17;
 
Vielleicht wäre es am einfachsten erst mal zu beschreiben, was du eigentlich machen möchtest...

Dein ursprünglicher Code hat prinzipiell gar nicht schlecht ausgesehen. Es war nur die Frage offen, was dir am Ergebnis nicht gefallen hat, bzw. was das erwartete Ergebnis sein soll.

EDIT: Ja, wir sind hier kein Germanistik-Forum, aber gibt dir bitte etwas Mühe, so dass man deine Formulierung auch verstehen kann.
 
Sorry. Ich muss diese Daten in einem Array abspeichern und eine Array Tabelle ausgeben.
Welche Daten? Wo kommen die Daten her?

Was haben "diese Daten" mit deinem Ausgangsbeitrag zu tun?

Was willst du überhaupt machen? Was hast du bisher ausprobiert? Was ist das Problem dabei?

Ich möchte ja nicht unleidlich erscheinen, aber, wenn du etwas von uns möchtest, dann solltest du auch beschreiben, was du möchtest oder was dein Problem ist:

Irgendwelche Daten, in irgendeinem Array speichern und irgendwie ausgeben...

In deinem ersten Beitrag hat ja anscheinend ein Teil bereits korrekt funktioniert. Warum zeigst du uns das nicht und sagst, was nicht funktionierte?
 
Zuletzt bearbeitet:
Also ich muss diese Daten, die ich aus der Aufgabe hatte in einem Array abspeichern und dann i einer Tabelle ausgeben lassen und ich weiß nicht, ob das so stimmt mit dein Daten abspeichern und wie ich es ausgeben lasse
 
Eine Zuweisung des Wertes von x an die Stelle i, j in einem Array machst du mit
Code:
myArray[i][j] = x;
Aber das weißt du ja.

Was du leider bisher nicht kommuniziert hast - Nach welcher Logik sollen welche Daten wie in dem Array gespeichert werden.

Du kannst ja einfach überall eine 1 reinschreiben:
Code:
int[][] wetterstation = new int[2][14];
for (int i=1;i<2;i++) {
for (int j=1;j<14;j++) {
wetterstation[i][j] = 1;
Daten gespeichert 🙂 Aber mit Sicherheit nicht das was du willst.

Also konkret - an welcher Stelle im Array sollen genau welche Daten stehen und wo genau kommen die her (Die komme nicht aus einer "Aufgabe" sondern müssen irgendwo im Code definiert sein oder errechenbar sein).
 
Also ich will eine Tabelle am Ende in der Konsole haben, muss aber in einem Array gespeichert sein, wo oben die Tage stehe (1bis14) und unten die Temperaturen. Und ich weiß nicht wie ich das hinbekomme. Und die Daten habe ich ja oben in dem code schon gespeichert, nur wie gebe ich sie in der Konsole aus,wo auch darüber die Zahlen 1 bis 14 stehen
 
Also ich weiß zwar nicht ob das stimmt jedoch, wenn der zweidimensionale array richtig befüllt ist, wie gebe ich ihn in die konsole aus?

Java:
    int [] [] wetterstation = new int [2] [14];
         
          wetterstation [2] [1] = 19;
          wetterstation [2] [2] = 15;
          wetterstation [2] [3] = 10;
          wetterstation [2] [4] = 17;
          wetterstation [2] [5] = 11;
          wetterstation [2] [6] = 13;
          wetterstation [2] [7] = 18;
          wetterstation [2] [8] = 17;
          wetterstation [2] [9] = 15;
          wetterstation [2] [10] = 8;
          wetterstation [2] [11] = 6;
          wetterstation [2] [12] = 3;
          wetterstation [2] [13] = 1;
          wetterstation [2] [14] = 1;


          wetterstation [1] [1] = 1;
          wetterstation [1] [2] = 2;
          wetterstation [1] [3] = 3;
          wetterstation [1] [4] = 4;
          wetterstation [1] [5] = 5;
          wetterstation [1] [6] = 6;
          wetterstation [1] [7] = 7;
          wetterstation [1] [8] = 8;
          wetterstation [1] [9] = 9;
          wetterstation [1] [10] = 10;
          wetterstation [1] [11] = 11;
          wetterstation [1] [12] = 12;
          wetterstation [1] [13] = 13;
          wetterstation [1] [14] = 14;
 
Zuletzt bearbeitet:
bzw. ich brauche so eine Tabelle wie hier nur das in der oberen waagerechten die zahlen 1 bis 14 stehen und in der zweiten Spalte waagerecht die unterschiedlichen Zahlen
Java:
package Wetterstation;

public class Wetterstation {

    public static void main(String[] args) {
        // TODO Auto-generated method stub


int[][] wetterstation = new int[2][14];

        for (int i = 0; i < wetterstation.length; i++) {
            for (int j = 0; j < wetterstation[i].length; j++) {
                wetterstation[i][j] = i+1 ;

                System.out.print(wetterstation[i][j] + "\t");
            }

            System.out.println();

          
    }

} }
 
Also so wie ich das sehe, brauchst du gar kein zweidimensionales Array, weil sich die erste Zeile ja aus der Position ergibt und für die "Messwerte" ein einfaches Array reicht. In der ersten Zeile gibst du dann einfach die Zahlen von 1 bis 14 aus und in der zweiten jeweils die Zahl, die du in dem Array gespeichert hast.

Oder musst du unbedingt ein zweidimensionales Array verwenden?

Geht es in der Aufgabe nur um die Ausgabe? Du kannst das Array ja auch direkt bei der Deklaration mit Werten initialisieren: int[] werte = new int[] { 3, 5, 1 };
 
Also so wie ich das sehe, brauchst du gar kein zweidimensionales Array, weil sich die erste Zeile ja aus der Position ergibt:

In der ersten Zeile gibst du die Zahlen von 1 bis 14 aus und in der zweiten jeweils die Zahl, die du in dem Array gespeichert hast.

Oder musst du unbedingt ein zweidimensionales Array verwenden?

Geht es in der Aufgabe nur um die Ausgabe? Du kannst das Array ja auch direkt bei der Deklaration mit Werten initialisieren: int[] werte = new int[] { 3, 5, 1 };
Kannst du mir das vielleicht als Code senden?
 
Ok
, also einfach nur eindimensional und wie bekomme ich dann das 1 bis 14 darüber?
Indem du einfach die Zahlen von 1 bis 14 in einer Zeile ausgibst? Du weißt doch, wie eine Schleife funktioniert...

"Profitipp": Du kannst dich bei der oberen Grenze der Schleife an der Größe des Arrays orientieren, dann funktioniert die Ausgabe auch mit weniger oder mehr Werten im Array.
 
Keine Ahnung, was für "Namen" du gerade meinst. Hast du den Code verstanden, den du bisher geschrieben hast? Da sind doch schon zwei Schleifen drin.
Ist das jetzt so, wie du das gemeint hast?
Java:
int [] wetterstation = new int [] {15, 14, 20, 17, 21, 15, 12, 17, 19, 28, 15, 12, 10, 12};
      
System.out.print(" 1  2  3 4  5  6  7  8  9 10 11 12 13 14 ");

System.out.println(wetterstation);
} }
 
Also ich habe es jetzt so gemacht mit dem array erstellen und ausgeben, aber es funktioniert nicht

Java:
package Wetter;

public class Wetterstation{

    public static void main(String[] args) {
        // TODO Auto-generated method stub


        int [] [] wetterstation = new int [2] [13];
        
          wetterstation [2] [0] = 13;
          wetterstation [2] [1] = 15;
          wetterstation [2] [2] = 10;
          wetterstation [2] [3] = 17;
          wetterstation [2] [4] = 12;
          wetterstation [2] [5] = 15;
          wetterstation [2] [6] = 16;
          wetterstation [2] [7] = 15;
          wetterstation [2] [8] = 18;
          wetterstation [2] [9] = 18;
          wetterstation [2] [10] = 18;
          wetterstation [2] [11] = 14;
          wetterstation [2] [12] = 12;
          wetterstation [2] [13] = 11;


          wetterstation [1] [0] = 1;
          wetterstation [1] [1] = 2;
          wetterstation [1] [2] = 3;
          wetterstation [1] [3] = 4;
          wetterstation [1] [4] = 5;
          wetterstation [1] [5] = 6;
          wetterstation [1] [6] = 7;
          wetterstation [1] [7] = 8;
          wetterstation [1] [8] = 9;
          wetterstation [1] [9] = 10;
          wetterstation [1] [10] = 11;
          wetterstation [1] [11] = 12;
          wetterstation [1] [12] = 13;
          wetterstation [1] [13] = 14;

      

         for ( int zeile = 0; zeile < wetterstation.length; zeile++ )
            {
              System.out.print("Zeile " + zeile + ": ");
              for ( int spalte=0; spalte < wetterstation[zeile].length; spalte++ )
                System.out.print( wetterstation[zeile][spalte] + " ");
              System.out.println();
            }
} }
 
Zuletzt bearbeitet:
Also eigentlich k´nicht, da folgendes rauskommt: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [I@27f674d
Dann ist es wohl nicht so, wie ich gemeint habe.

Ich kenne deine Aufgabe nicht, aber es klingt so als wäre die Lösung ungefähr folgendermaßen:

1. Deklariere und initialisiere ein Array mit den gewünschten Werten.
2. Für jeden Wert von 1 bis einschließlich der Arraylänge, gibt diesen Wert und einen Tabulator aus.
3. Gib einen Zeilenumbruch aus.
4. Für jeden Wert von 0 bis zur Arraylänge, gib den entsprechenden Wert aus dem Array und einen Tabulator aus.
 
Dann ist es wohl nicht so, wie ich gemeint habe.

Ich kenne deine Aufgabe nicht, aber es klingt so als wäre die Lösung ungefähr folgendermaßen:

1. Deklariere und initialisiere ein Array mit den gewünschten Werten.
2. Für jeden Wert von 1 bis einschließlich der Arraylänge, gibt diesen Wert und einen Tabulator aus.
3. Gib einen Zeilenumbruch aus.
4. Für jeden Wert von 0 bis zur Arraylänge, gib den entsprechenden Wert aus dem Array und einen Tabulator aus.
Meine Aufgabe ist folgendes:
1Daten in array abspeichern
2 gebe die Tage mit den Temperaturen in einer Tabelle aus

und Ich habe es so gemacht und weiß nicht wo mein Fehler ist bzw. was ich falsch gemacht habe
Java:
package Wetter;

public class Wetterstation{

    public static void main(String[] args) {
        // TODO Auto-generated method stub


        int [] [] wetterstation = new int [2] [13];
       
          wetterstation [2] [0] = 13;
          wetterstation [2] [1] = 15;
          wetterstation [2] [2] = 10;
          wetterstation [2] [3] = 17;
          wetterstation [2] [4] = 12;
          wetterstation [2] [5] = 15;
          wetterstation [2] [6] = 16;
          wetterstation [2] [7] = 15;
          wetterstation [2] [8] = 18;
          wetterstation [2] [9] = 18;
          wetterstation [2] [10] = 18;
          wetterstation [2] [11] = 14;
          wetterstation [2] [12] = 12;
          wetterstation [2] [13] = 11;


          wetterstation [1] [0] = 1;
          wetterstation [1] [1] = 2;
          wetterstation [1] [2] = 3;
          wetterstation [1] [3] = 4;
          wetterstation [1] [4] = 5;
          wetterstation [1] [5] = 6;
          wetterstation [1] [6] = 7;
          wetterstation [1] [7] = 8;
          wetterstation [1] [8] = 9;
          wetterstation [1] [9] = 10;
          wetterstation [1] [10] = 11;
          wetterstation [1] [11] = 12;
          wetterstation [1] [12] = 13;
          wetterstation [1] [13] = 14;

     

         for ( int zeile = 0; zeile < wetterstation.length; zeile++ )
            {
              System.out.print("Zeile " + zeile + ": ");
              for ( int spalte=0; spalte < wetterstation[zeile].length; spalte++ )
                System.out.print( wetterstation[zeile][spalte] + " ");
              System.out.println();
            }
} }
 
Zuletzt bearbeitet:
Meine Aufgabe ist folgendes:
1 Speichere die vorgegebenen Temperaturen in einem array ab
2 gebe die Tage mit den Temperaturen in einer Tabelle aus
Den ersten Teil hättest du damit bereits erledigt:
Java:
int[] wetterstation = new int[] {15, 14, 20, 17, 21, 15, 12, 17, 19, 28, 15, 12, 10, 12};
Der Rest steht oben.
 
und Ich habe es so gemacht und weiß nicht wo mein Fehler ist bzw. was ich falsch gemacht habe
1. Tipp: "Es geht nicht" oder "da ist ein Fehler" ist völlig nichtssagend. Immer den genauen Fehler angeben oder schreiben was genau nicht geht, bzw. was passieren soll.

2. Tipp: Arrays sind nullbasiert. Das erste Element hat den Index 0. Du versuchst dem Arrayelement am Index 2 etwas zuzuweisen, da es nur zwei Elemente hat, ist der höchste mögliche Index die 1.
 
Aber wenn ich es ausgeben möchte kommt folgendes raus

1641154668002.png
Java:
package Wetterstation;

public class Wetterstation {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int[] wetterstation = new int[] {15, 14, 20, 17, 21, 15, 12, 17, 19, 28, 15, 12, 10, 12};
        
        System.out.print(" 1  2  3 4  5  6  7  8  9 10 11 12 13 14 ");

        System.out.println(wetterstation);
} }
 
Danke ich habe es jetzt. Kann ich es noch irgendwie machen, dass wenn ich ohne das Println (nur mit print), dass ich eine Lertaste mache?
Java:
package Wetter;

public class Wetterstation {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

       
int[] wetterstation = new int[] {15, 14, 20, 17, 21, 15, 12, 17, 19, 28, 15, 12, 10, 12};
       
for(int i = 0; i<wetterstation.length; i++) {

    System.out.print(wetterstation [i]);

} } }
 
Zuletzt bearbeitet:
Ja, danke dafür! Nur ich benötige über den Temperaturen noch den Tag stehen ( Zahlen 1 bis 14) und wie bekomme ich das hin? Also in der Konsole. Über den Temperaturzahlen noch über die erste Temperatur die Zahl 1


1641214519880.png
Java:
package Wetter;

public class Wetterstation{

    public static void main(String[] args) {
        // TODO Auto-generated method stub

       
int[] wetterstation = new int[] {15,  14, 20,  7, 21, 15, 12, 17, 19, 28, 15, 12, 10, 12};
       
for(int i = 0; i<wetterstation.length; i++) {

   
    System.out.print(wetterstation[i] + " ");

   

} }}
 
Gut, diese Briefmarke (Bild) ist jetzt nicht sehr praktisch 🙂

Ich vermute mal, Du willst:
Java:
System.out.println("  1  2  3  4  5  6  7  8  9 10 11 12 13 14");

for(int i = 0; i<wetterstation.length; i++) {
    System.out.print(wetterstation[i] + " ");
}

Erst also die Zahlen 1 bis 14 in einer Zeile ausgeben, dann in der nächsten Zeile mit einer Schleife die Werte aus dem Array nebeneinander schreiben.
 

Zurück
Oben