Bonjour,
Cher Walid je pense que la moindre des choses serait :
1) de commencer ton message par bonjour
2) de copier coller un code indenté la prochaine fois
3) de finir ton message par un "merci d'avance"
Ensuite non ton programme est faux :
(mando@velvet) (~) $ ./a.out
entrez sept numéro s.v.p
1234
Erreur de segmentation
Ton scanf est faux, si tu prends le temps de lire la documentation, tu verras que c'est l'adresse de ton entier qu'il faut passer en paramètre (donc &m[i][j]). C'est une erreur que tu aurais pu voir si tu avais pris le temps de compiler :
(mando@velvet) (~) $ gcc -W -Wall plop.c
plop.c: In function `main':
plop.c:17:13: warning: format `%d' expects argument of type `int *', but argument 2 has type `int' [-Wformat=]
scanf("%d", m[i][j]);
^
plop.c:28:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
On voit d'ailleurs que ton main ne retourne pas l'entier qu'il est sensé retourner (0 si tout va bien, une autre valeur sinon).
Ensuite en terme de conception beaucoup de choses ne vont pas :
- il est inutile de tout mémoriser (donc inutile d'avoir une matrice), seul l'essai courant est pertinent (donc un vecteur est suffisant)
- idéalement on devrait pouvoir paramétrer au lancement du programme les différentes constantes (nombre d'essai, nombre de chiffres à deviner, etc...) mais ceci nécessite de savoir faire une allocation dynamique avec malloc et free (oublie cette remarque si tu ne les as pas vu en cours).
- ensuite on voit tout de suite que le programme ne répond pas au problème car la seule chose qu'il est capable de retourner ce sont des "A" (si c'est correct), or vu que ton exercice semble très proche d'un mastermind, il devrait renvoyer pour chaque boule si elle est bonne, mal placée ou fausse. La seule chose qu'on peut s'attendre à voir c'est par exemple "AAA" si 3 des 7 chiffres sont bons sans savoir lesquels seront corrects. Ça ne répond donc pas à l'exercice.
Bonne chance