Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 1. arkantos-rätsel

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.05.2003, 08:41 Uhr
~arkantos
Gast


Kennt jemand von euch magische Quadrate?
Das Quadrat für die Seitenlänge 3 sieht so aus:

8 1 6

3 5 7

4 9 2

Die summe der einzelnen zeilen, spalten, diagonalen ist immer gleich

schreibt ein Programm, das nach eingabe einer ungeraden Seitenlänge von 3 bis 29 ein magisches Quadrat erzeugt.

viel spaß, arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.05.2003, 19:02 Uhr
~0xdeadbeef
Gast


Ist jetzt mehr ne 0815-Standardlösung, aber sie funktioniert. Hier bitte:

C++:
#include <iostream>

using namespace std;

int main() {
  int dim;
  cout << "Seitenlänge eingeben: ";
  cin >> dim;
  if(!cin.fail() && dim > 0 && dim%2) {
    int feld[dim][dim];
    int i, j, z;

    for(i = 0; i < dim; ++i)
      for(j = 0; j < dim; ++j)
        feld[i][j] = 0;

    for(i = 0, j = dim/2, z = 1; z <= dim*dim; ++z) {
      if(feld[i][j] != 0) {
        i = (i+2)%dim;
        j = (j-1+dim)%dim;
      }
      feld[i][j] = z;
      i = (i-1+dim)%dim;
      j = (j+1)%dim;
    }

    for(i = 0; i < dim; ++i) {
      for(j = 0; j < dim; ++j)
        cout << feld[i][j] << '\t';
      cout << endl;
    }
  } else
    cout << "Verarschen kann ich mich auch alleine." << endl;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.05.2003, 08:43 Uhr
~arkantos
Gast


Da habt ihr aber lange gebraucht, war des so knifflig?

@beefy: nicht schlecht, für was ist die funktion fail()?

grüße arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.05.2003, 13:16 Uhr
~0xdeadbeef
Gast


Sonderlich knifflig eigentlich nicht. Ich hatte die Zeit nicht, weil ich mich gerade mit Mathe rumschlagen mußte (partielle und Richtungsableitungen, Taylor-Polynome etc, ziemlich aufwändig). Außerdem mußte ich noch in meinem Gedächtnis kramen, wie das Bildungsgesetz nochmal ging.

Die Methode istream::fail() gibt true zurück, wenn das fail-state-bit des Streams gesetzt ist, sonst false. Das fail-state-bit kannst du zum einen per Hand setzen, und es wird automatisch gesetzt, wenn mit dem Stream irgendwas nicht hinhaut - Zum Beispiel, wenn du in einen int einlesen willst, und jemand schreibt dir "Hello, World!" nach stdin.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: