Christoph Zurnieden: matrix spiralförmig durchsuchen

Beitrag lesen

Hi,

es tut mir leid, aber ich kann das nicht einfach so lassen stahn.
Wir sind hier ein _ordentlicher_ Sauhaufen! ;-)

#ifdef __cplusplus
#include <cstdio>
#else
#include <stdio.h>
#endif

main() {

Nach ISO-14882 ist in C++ main() vom Typ int.

int x=8;
int y=13;

Funktioniert das auch mit anderen Werten?

int end_x;
int end_y;
int x_laenge=1;
int y_laenge=6;
int richtung=1;

/* Erst mal in der Mitte raus nach oben, damit es symmetrisch wird */
   while (y != 7) {
      printf("x=%d, y=%d\n",x,y);
      y--;
   }

Es funktioniert also nicht mit andern Werten. Hat das einen bestimmten Grund? Oder möchtest Du den OP einfach ein wenig hoppnehmen?

/* Jetzt unterschiedlich lange Strecken ablaufen, da es keine X*X sondern ein
e Y*X-Matrix ist, wobei X != Y (damit gewisse Erbsenzaehler zufrieden sind) */

Das Du überhaupt diese Einschränkung machst wundert mich.

[merkwürdig komplizierte Vorgehensweise, aber egal, gestrichen]

return 0;

}

Bei C++ ist die Voreinstellung bereits die Rückabe von 0, deshalb ist die Zeile "return 0;" für C++ überflüssig. Da sie aber bei C++ nicht schadet und bei C vorgeschrieben ist, kann man sie hinsetzen, wenn man auf beide Sprachen portierbar bleiben möchte. (Wobei die 0 da eigentlich falsch ist. Der Rückgabewert für einen erfolgreichen Abschluß muß nicht zwingend 0 sein. Der C++-Compiler kann das und muß das sogar regeln, der C-Compiler tut es aber nicht, darf er ja auch gar nicht. Macht aber auch nix, der hat dafür dann Macros.)

So, sofern copy&paste nicht irgend einen Mist gemacht hat, muesste es so klappen. Statt printf dann entsprechend System.out.println()

Ach, 's ist für Java? Warum gibst Du dann keinen Javacode an? Keine Java-VM auf der Maschine? Soviel sollte aber selbst "Kaffe" schaffen, Lizenzprobleme sind also zumindest hier kein Grund ;-)

so short

Christoph Zurnieden