alle Diagonalen in Matrix



  • hEY gUYS! freshman.needs(you);
    ich will alle Diagonalen einer 2-dim Matrix char box[][] nach bestimmten Wörtern durchsuchen. Deshalb bilde ich jeweils eine Zeile line aus einer Diagonalen und suche in dieser. Das Suchen ist ja alles no prob, but:
    Für alle Diagonalen von links oben nach rechts unten fällt mir nicht schöneres ein als das:

    char box[boxAttr[0]][boxAttr[1]]={/*ganz viele character;-)*/};
    string line;
    for(int startColumn=boxAttr[1]-1; startColumn>0 ;startColumn--){
      line = "";
      for(int row=0, column=startColumn; row<boxAttr[0] && column<boxAttr[1] ;row++, column++){
        line += box[row][column]; 				
      }
      //verarbeite line
    }
    for(int startRow=0; startRow<boxAttr[0] ;startRow++){
      line = "";
      for(int row=startRow, column=0; row<boxAttr[0] && column<boxAttr[1] ;row++, column++){
        line += box[row][column]; 				
      }
      //verarbeite line
    }
    

    ...und das ist ultra hässlich 😡
    ...und für alle Diagonalen von links unten nach rechts oben noch mal das selbe analog? *göbel* 😡
    please, help me; thanx'!!



  • ...nein, ich bin nicht ungeduldig!
    freshman.cry();freshman.say("hello world?!");freshman.look( 😞 );
    Hier hatte doch bestimmt schon einmal jemand ein ähnliches Problem, oder?

    [edit; earth-Germany-0408261715]
    könnt ihr mich nicht mehr leiden? 😞
    ( d.h. 'mehr' impliziert, daß es schon mal jemand getan hat; ergo: könnt ihr mich nicht leiden? )
    Falls jemandem doch noch was einfällt...(meine Lsg zeige ich besser nicht, sonst verbannt ihr mich auch noch aus dem Forum, wegen Erregung öffentlichen Ärgernisses 😃
    [\edit; earth-Germany-0408261717]



  • ich will nicht nerve, aber ich push meine Frage noch einmal, damit sie nicht in Vergssenheit gerät. Wenn keine Idee, dann wenigstens Mitleidsbekundungen, okay?



  • Hi!

    Guck mal hier:
    http://www.c-plusplus.net/forum/viewtopic.php?t=84016

    1. Seite und vorletzter Beitrag von Shlo. Dort wird ein Zeiger auf den Anfang und einer auf das Ende des Arrays gesetzt und mit einem Algo durchgearbeitet, genau das kannst du für eine Schleife verwenden.

    Oder du nimmst einen Pointer her, lässt ihn auf das erste Element zeigen und kannst dann auf 1 Index umrechnen um auf das mehrdimensionale Feld zuzugreifen.

    Code-Hacker



  • Du könntest noch ne dritte Schleife drumpacken, die von 1 bis 4 geht und dann die Richtungen in denen du suchen sollst abklappert. Die 4 Richtungen hälst du in einem Array von Konstanten, ebenso die Startpositionen.



  • ... doppelpost


Anmelden zum Antworten