KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: Matrix abfragen
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi, ich habe eine Frage bezüglich einer Matrixrechnung.
So wie ich das verstanden haben, ermöglichen Matrizes das simulieren von mehrdimensionalen Arrays(da c sie normalerweise nicht unterstützt):

Code:
    int solidblock[10][2]={
                  {0, 32},
                {16, 16},
                {16, 32},
                {16, 48},
                {16, 64},
                {16, 80},
                {16, 96},
                {16, 112},
                {16, 128},
                {16, 144}
        };

dazu habe ich eine theoretische Frage (kann es gerade nicht testen)
wie kann man das ganze abfragen? also, ob eine dieser matrizen mit einem array übereinstimmt?

wieso sollte C keine mehrdimensionalen arrays unterstützen?
was du da zeigst ist doch nichts anderes als ein ganz normales 2 dimensionales array.
sagen wir mal wir haben dein array, und ein andes array, und du willst wissen ob dieses zweite array irgendwo in diesem 2d-array vorkommt:

PHP-Code:
int solidblock[10][2]={
                  {
032},
                {
1616},
                {
1632},
                {
1648},
                {
1664},
                {
1680},
                {
1696},
                {
16112},
                {
16128},
                {
16144}
        };
int testarray[2]={16,64}
int gefunden=0;
for(
int i=0;i<10 &amp;&ampgefunden==0;i++){
    
int gleich=1;
    for(
int j=0;j<&amp;&ampgleich==1;j++){
        if(
testarray[j]!=solidblock[i][j]) gleich=0;
    }
    if(
gleich==1gefunden=1;


am ende ist gefunden dann entweder 0, wenn das array nicht im 2d array vorkommt, oder halt 1 wenn es drin vorkommt.
ist nicht getestet, aber so sollte das gehen. ist doch nichts schwieriges.

Danke, dann habe ich falsche Informationen bekommen:

Zitat:
C unterstützt eigentlich keine mehrdimensionalen Arrays aber man kann sie simulieren.


btw es scheint ein Problem zu geben.

map1.c:21: error: 'amp' undeclared (first use in this function)
map1.c:21: error: (Each undeclared identifier is reported only once
map1.c:21: error: for each function it appears in.)
map1.c:21: error: expected ')' before ';' token
map1.c:24: error: expected ')' before ';' token

die integer habe ich bereits außerhalb der for-schleife deklariert.

Zitat:
ist doch nichts schwieriges.

sagte der Studend zum 16 Jährigen Mittelschüler ;D

EDIT:
korrigiert
http://pastebin.com/pv0jV8KP

die &amp schleichen sich bei pking ein...

EDIT: die PSP crasht dabei

du hast in den beiden for schleifen die &&, die < und die ; an falschen stellen gesetzt, so sollten die plaziert sein:


for(i=0; i<10 && gefunden==0;i++){
int gleich=1;
int j;
for(j=0; j<2 && gleich==1;j++){
if(testarray[j]!=solidblock[i][j]) gleich=0;
}
if(gleich==1) gefunden=1;
}

btw, ich bin grade mal 3 jahre älter als du ^^
jedenfalls brennt mich noch die Frage, die indirekt damit zutun hat. nämlich wenn ich den oben genannten Array (solidblock) durch eine Header Datei initialisiere, bekomme ich einen Compiler Error:

error: subscripted value is neither array nor pointer

der header ist natürlich via #include dabei... das macht mich recht stutzig Noidea

EDIT: Ansonsten funktioniert natürlich alles Big Grin
Referenz-URLs