Le carré magique

0/5 (5 avis)

Snippet vu 6 899 fois - Téléchargée 35 fois

Contenu du snippet

Ce code source permet de générer et d'afficher le carré magique d'un nombre saisie. Ce nombre doit etre bien sur impair. Ce code a été édité et tester sous linux ( Fedora Core 2 ).
Si vous voulez des explications sur certains points du code, n'hésiter pas à me laisser des commentaires.

Source / Exemple :


#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;

int carremaj(int n)
{
  vector<int> v(n*n);
  int i = ((n*n)/2)+n, r = 1;
  v[i] = r++;
  while(r <= n*n) 
  {
    int i2 = (i + (i%n == (n-1) ? +1 : (n+1))) % (n*n);
    if(v[i2] == 0)
        v[i = i2] = r++;
    else
        v[i = (i + 2*n) % (n*n)] = r++;
    }
  for(int a = 0; a < n*n; ++a) {
    setw(5);
    if(a%n == 0) cout << endl;
    cout << v[a] << " ";
  }
  cout << endl;
  return n;
}

int main()
{
  int n;
  cout << "Entrer un nombre N qui doit etre impair : " << endl;
  cin >> n;
  carremaj(n);
  return 0;
}

A voir également

Ajouter un commentaire Commentaires
betacrack1 Messages postés 1 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 3 février 2006
3 févr. 2006 à 13:16
C'EST BEAU MAIS DIFFICILE A COMPRENDRE
EST-CE POSSIBLE D'AVOIR UNE EXPLICATION LIGNE PAR LIGNE DE LA FONCTION
CARREMAJ().
MERCI
email:dembadiop@yahoo.fr
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
26 févr. 2005 à 21:52
Bah c'est un tableau où les sommes des chiffres des lignes, des colonnes et des diagonales sont égales, et dont le nombre de ligne (= nb de colonnes) est impair. Je comprend pas trop pourqoi l'imparité est nécessité, mais bon...

Détaille un peu plus, que ce soit dans la partie réservée pour ça que dans le code lui-même.
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
25 févr. 2005 à 18:07
ah ? j'pensais pas à ça en voyant "carré magique" :)
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
25 févr. 2005 à 16:21
Oui c'est quoi le carré "magique" d'un nombre impair??
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
25 févr. 2005 à 14:20
"Si vous voulez des explications sur certains points du code, n'hésiter pas à me laisser des commentaires"

=> c'est plutôt à toi de mettre des commentaires dans le code pour qu'on sache ce qu'il fait...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.