So habe ich ein Dilemma. Mein Code soll ein diagonales Muster von Zahlen mit for-Schleifen und einem 5 mal 5 zweidimensionalen Array ausgeben. Ich soll das Array mit Nullen füllen und die for-Schleife mit den gewünschten Zahlen füllen. Bisher habe ich das erfolgreich gemacht. Sie sind jedoch in der falschen Reihenfolge. Ich möchte, dass die 80 oben rechts und die 5 unten links sind.Erstellen von Mustern mit mehrdimensionalen Arrays in c
Die Ausgabe sollte so aussehen:
0 0 0 0 80
0 0 0 40 0
0 0 20 0 0
0 10 0 0 0
5 0 0 0 0
Aktuelle Quellcode:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int the_array[5][5] =
{
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
};
int dia = 5;
int x = 0;
int y = 0;
for (x = 4; x >= 0; --x)
{
for (y = 0; y < 5; ++y)
{
if (x == y)
{
the_array[x][y] = dia;
dia *= 2;
}
printf(" %d ", the_array[x][y]);
}
printf("\n");
}
return 0;
}
Split die Schlaufen oben in zwei Durchgänge. Setzen Sie das Array im ersten Durchlauf und drucken Sie es im zweiten Schritt. Auf diese Weise können Sie die Reihenfolge ändern, in der Sie iterieren. Die erste Schleife muss nicht geschachtelt werden, da Sie sie nur bei 'x == y' setzen. –