C Zweidimensionales Array "zweidimensional" ausgeben :-)

ReVo

Lieutenant
Registriert
Jan. 2006
Beiträge
567
Hallo,

also nehmen wir an ich habe einen mehrdim. array
Code:
char test[3][4] = 'X'
Im gedanken müsste das wie folgt aussehen:

X X X X
X X X X
X X X X

Also 3 zeilen und 4 spalten. Ich kann das jetzt mit printf("%s", test) ausegeben lassen, aber dann habe ich alle x-en in eine zeile. Ich möchte das exakt so ausgeben wie ich es eben "gezeichnet" habe ;) Natürlich so unkompliziert wie es nur geht... später werden einige x-e durch andere zeichen ersetzt, aber das ist erstmal nicht so wichtig. Hauptsache ich kriege das erstmal so halbwegs hin.

Danke schonmal

Gruß
 
das ganze einach in 2 schleifen verpacken wo du einerseite den spaltenindex raufzählst. wenn dieser bei 3 angekommen ist, zählst den zeilenindex um eins hoch.
 
Hi,

das ist nicht so richtig mein problem. Sondern wie ich es mit printf machen soll. Also ich gehe alle zeilen und spalten durch, OK. Nur wie soll das dann ausgegeben werden. Ah ist sicher sehr sehr einfach, es geht nur um die ausgabe. Da verstehe ich irgendwas nicht richtig bzw. weiß nicht wie das gehen soll.

Ich starte mit der letzten zeile. Ich lese alles durch was in der zeile(alle spalten durchgehen) war, springe eins höher und da das selbe. Solange bis alle zeilen durch sind. GUT, aber wie zeige ich das an? xD Ja da haben wir das schon wieder. Ah bin gerade voll verpeilt. Ich habe gestern doch kaum sehr viel getrunken ;)

Gruß
 
printf("%s", test[index1][index2])

so ;)

index1 und 2 werden hald immer von 0 - 3 horchgezählt.
 
Hi,

ja moment soweit verstehe ich das auch(glaube ich), aber damit kann ich das nicht so darstellen wie ich das im ersten beitrag gezeichnet habe. Also nehmen wir an ich mache printf("%s", test[0][0]), dann printf("%s", test[0][1]),printf("%s", test[0][2]), printf("%s", test[0][3]), printf("%s", test[1][0]) ... am ende kommen dann alle x-en untereinander in der konsole raus:
X
X
X
X
X
...

was wieder nicht so wäre wie es sein sollte. Ich glaube ich drehe mich im falschen kreis ^^

Gruß
 
PHP:
for (int i = 0; i != 3; ++i)
{
  for (int j = 0; j != 4; ++j)
    printf("%c", test[i][j]);
  printf("\n");
}
 
Hi! Ah danke, ich sehe jetzt,dass ich total verpeilt war :lol: Irgendwie dachte ich nach jedem printf kommt eine leerzeile! Was natürlich nicht passiert, man muss nur eine "\n" einfügen sobald die zeile fertig ist. Bla blupp... :rolleyes:

Übrigens wie fügt man solche farbige codes ein? Das sieht natürlich immer toller aus, wie die schwarz-weißen. Da steht jetzt PHP code, aber sagt mir erstmal nichts.

Gruß
 
Einfach [php]...[/php] anstelle von [code]...[/code] verwenden (bzw. auf den php Button klicken). Ist zwar snytax highlighting für php Code, funktioniert aber auch ganz gut für alles was wie C aussieht :)
 
Hallo,
das Thema ist zwar schon etwas älter. Aber ich habe genau die selbe Frage und wollte keinen neuen Aufmachen.

Wo ist der Fehler in meinem Code?
Ich habe ein zweidimensionales Array. Lass das nur mit 1 beschreiben und möchte es anschließende so ausgeben:

1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1

Doch leider geht das nicht. Bei mir ist alles untereinander.

PHP:
#include <stdlib.h>
#include <stdio.h>

int main()
{

int row1[5][7];
int count, count2, tmp, tmp2;

for(count = 0; count < 5; count++)
{
	for(count2 = 0; count2 < 7; count2++)
	{
		row1[count][count2]=1;
	}
}

for(tmp = 0; tmp < count; tmp++)
{
	for(tmp2 = 0; tmp2 < count2; tmp2++)
	{
		printf("%d \n", row1[tmp][tmp2]);
	}
}


}
Ergänzung ()

Problem gelöst:
PHP:
#include <stdlib.h>
#include <stdio.h>

int main()
{

int row1[5][7];
int count, count2, tmp, tmp2;

for(count = 0; count < 5; count++)
{
	for(count2 = 0; count2 < 7; count2++)
	{
		row1[count][count2]=1;
	}
}

for(tmp = 0; tmp < count; tmp++)
{
	for(tmp2 = 0; tmp2 < count2; tmp2++)
	{
		printf("%d", row1[tmp][tmp2]);
	}
	printf("\n");
}
 
Zurück
Oben