Pouvez-vous me vérifier ce programme ??
Fermé
walidmz
Messages postés
7
Date d'inscription
lundi 4 mai 2015
Statut
Membre
Dernière intervention
3 mars 2017
-
Modifié par mamiemando le 5/05/2015 à 10:15
mamiemando Messages postés 33344 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 7 novembre 2024 - 7 mai 2015 à 10:16
mamiemando Messages postés 33344 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 7 novembre 2024 - 7 mai 2015 à 10:16
A voir également:
- Pouvez-vous me vérifier ce programme ??
- Verifier un lien - Guide
- Programme demarrage windows 10 - Guide
- Programme (x86) ✓ - Forum Windows
- Verifier compatibilite windows 11 - Guide
2 réponses
mamiemando
Messages postés
33344
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
7 novembre 2024
7 803
5 mai 2015 à 10:23
5 mai 2015 à 10:23
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 :
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 :
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
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
mamiemando
Messages postés
33344
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
7 novembre 2024
7 803
7 mai 2015 à 10:16
7 mai 2015 à 10:16
A chaque fois je compile, je reçoit ce message "code blocks a cessé de fonctionner" c'est pourquoi j'ai demandé une vérification
Cette erreur n'est pas normale (et sans doute due à une mauvaise installation de code::blocks), normalement le compilateur est sensé te renvoyer des messages d'erreur, mais code::blocks n'est pas sensé planter à cause de ça.
Si ton problème persiste réinstalle code::blocks ou un autre IDE. Ou tu peux aussi utiliser unetbootin pour avoir un linux (par exemple ubuntu ou kubuntu) sur clé usb, et travailler sur cette clé usb.
http://doc.ubuntu-fr.org/unetbootin
Il faudra juste veiller à installer un IDE via la logithèque ubuntu, par exemple anjuta ou kdevelop.
http://doc.ubuntu-fr.org/anjuta
http://doc.ubuntu-fr.org/kdevelop
Bonne chance
Cette erreur n'est pas normale (et sans doute due à une mauvaise installation de code::blocks), normalement le compilateur est sensé te renvoyer des messages d'erreur, mais code::blocks n'est pas sensé planter à cause de ça.
Si ton problème persiste réinstalle code::blocks ou un autre IDE. Ou tu peux aussi utiliser unetbootin pour avoir un linux (par exemple ubuntu ou kubuntu) sur clé usb, et travailler sur cette clé usb.
http://doc.ubuntu-fr.org/unetbootin
Il faudra juste veiller à installer un IDE via la logithèque ubuntu, par exemple anjuta ou kdevelop.
http://doc.ubuntu-fr.org/anjuta
http://doc.ubuntu-fr.org/kdevelop
Bonne chance
6 mai 2015 à 19:49
6 mai 2015 à 20:04
c'est pourquoi j'ai demandé une vérification