Exercice

Fermé
akybienvenu Messages postés 48 Date d'inscription samedi 26 décembre 2015 Statut Membre Dernière intervention 4 novembre 2019 - 26 déc. 2015 à 21:34
akybienvenu Messages postés 48 Date d'inscription samedi 26 décembre 2015 Statut Membre Dernière intervention 4 novembre 2019 - 26 déc. 2015 à 21:41
j'ai fais ce programme pour créer un carre magique d'ordre impaire mais il y a une condition dans ce programme que je n'arrive pas a remplir ( il s'agir de la case du centre de la 1ere ligne qui dois être le chiffre 1) hors il faut aussi que la somme des diagonale soit égale a 15 mais quand je m'arrange a le mettre mon programme beug
#include <iostream>

using namespace std;

int a[100][100];
int n;
char* nom;

class carre
{
private:
int i,j,k;
public:
void initialisation();
void magique();
void lire();
void imprimer();
};
void carre :: initialisation()
{for(i=0;i<n;++i)
{for(j=0;j<n;++j)
{
a[i][j]=0;
}
}
}
void carre::magique()
{
i = n-1; j = n/ 2;
for (k = 1; k <= n * n; ++k)
{
a[i][j] = k;
if ((k % n) == 0)
i = i - 1;
else
{
i = (i + 1) % n;
j = (j + 1) % n;
}
}
}
void carre:: lire()
{
do
{
cout<<"Taille du carre' magique, svp?:: ";
cin>>n;
if((n % 2 == 0) || (n >100 ))
cout<<" taille impossible \n"<<"\n";
}while((n % 2 == 0) || (n >100 ));

}
void carre :: imprimer()

{int i, j;

for (i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
cout<<" "<<a[i][j];
cout<<"\n";
}
}
int main ()
{
carre m;
m.lire();
m.initialisation();
m.magique();
m.imprimer();
}

1 réponse

akybienvenu Messages postés 48 Date d'inscription samedi 26 décembre 2015 Statut Membre Dernière intervention 4 novembre 2019
26 déc. 2015 à 21:41
VOICI COMMENT IL AFFICHE QUAND JE COMPILE :
4 9 2
3 5 7
8 1 6
alors que la condition m'oblige a obtenir un résultat comme ça
8 1 6
3 5 7
4 9 2
0