zwei dimensionales array mit "1 " füllen

canyakan95

Bekanntes Mitglied
Hallo meine aufgabe ist es folgendes zu programmieren:
10000
01000
00100
00010
00001

ich weiß, dass ich die positionen 0,0 1,1, 2,2, 3,3 4,4 füllen muss aber kann das leider nicht im 2d array umsetzen.
Code:
public class Vorlesung9 {

    public static void main (String[]args)
    {
        int n=5;
        int [][]a = new int[n][n];
        for(int i=0;i<a.length;i++)
        {
            for(int j=0;j<a[i].length;j++)
            {
                System.out.print(a[i][j]=1);
            }
            System.out.println();
        }
       
    }
}

so wird aber nur alles mit 1 gefüllt.
hoffe ihr könnt mir da weiterhelfen.
mfg
 
Code:
public class Vorlesung9 {

    public static void main (String[]args)
    {
        int n=5;
        int [][]a = new int[n][n];
        for(int i=0;i<a.length;i++)
        {
            for(int j=0;j<a[i].length;j++)
            {
                               if(i==j)
{
                System.out.print(a[i][j]=1);
}
            }
            System.out.println();
        }
       
    }
}

das wollte auch nicht klappen..habe ich schon versucht.
 
Liegt daran, dass du nur die Einsen ausgibst. Wenn i==j ist, dann eine 1 an die Stelle schreiben.

Und hinter dem if jedes Mal den Eintrag ausgeben und nicht nur, wenn i==j ist. Du willst die Nullen ja auch ausgeben.
 
so habe es endlich verstanden..vielen dank ..hier mein code:
Code:
public class Vorlesung9 {

    public static void main (String[]args)
    {
        int n=5;
        int [][]a = new int[n][n];
        for(int i=0;i<a.length;i++)
        {
            for(int j=0;j<a[i].length;j++)
            {
                if(i==j)
                a[i][j]=1;
                System.out.print(a[i][j]);
            }
            System.out.println();
        }
       
    }
}
 
Du solltest die 0-Einträge vielleicht auch lieber manuell setzen, statt dich auf Java zu verlassen.
Java:
if(i == j) {
  a[i][j] = 1;
} else {
  a[i][j] = 0;
}

Mit freundlichen grüßen
Xelsarion
 
Also ich muss hier wiedersprechen. Man kann sich auf Java sehr wohl verlassen, denn HIER und HIER ist klar definiert, dass es default-values gibt!

Auf jedenfall reicht es mit einer Schleife aus:
Java:
for(int i = 0; i < n; i++) {
  a[i][i] = 1;
}
 
Zuletzt bearbeitet:
Man kann sich auf Java sehr wohl verlassen
Ja, da wollte ich auch gar nicht widersprechen, es ging mir vielmehr darum, allgemein davor zu warnen, falls bspw. mal eine andere Programmiersprache genutzt wird, in der dieser Standard nicht existiert. Meine Wortwahl war an dieser Stelle vielleicht nicht ganz eindeutig 😉

Mit freundlichen Grüßen
Xelsarion
 

Neue Themen


Zurück
Oben