question boucle if - C - Programmation
Marsh Posté le 10-05-2014 à 23:36:10
Bonsoir !
Vous passez la structure "p" par valeur dans votre fonction "test_habilete", donc le paramètre passé est une copie de la variable du "main". L'habileté est bien décrémentée, mais c'est celle de la copie.
Si vous voulez la modifier dans la fonction, vous devez passer un pointeur (puisque vous êtes en C), comme vous l'avez fait pour la fonction "creation_avatar", les modifications seront alors faites sur la variable, pas sur la copie.
Bonne continuation !
Marsh Posté le 13-05-2014 à 22:07:55
kolorius a écrit : Bonjour à tous, |
Bonjour
kolorius a écrit :
|
C'est un peu normal vu que l'instruction est placée après le return...
kolorius a écrit : J'ai réglé mes problèmes mais j'ai une question: faut-il que que je mette cette instruction :
dans mon if et dans mon else ou est-ce qu'il y a moyen de le mettre une seule fois, quelque soit le cas dans lequel on se trouve? Voici mon code pour le sous programme en question :
|
Ben c'est évident. Deux instructions identiques, l'une dans le if (qui, soit dit en passant, n'est certainement pas une boucle) et l'autre dans le else => autant les sortir et n'en mettre qu'une seule.
Accessoirement, tu as supprimé la décrémentation (afficher i-1 ne décrémentera pas i !!!)
Code :
|
Marsh Posté le 10-05-2014 à 21:45:23
Bonjour à tous,
Je suis nouveau sur ce forum de même qu'en programmation. Je dois réaliser un projet qui, en gros, est une adaptation d'un livre-jeu sous forme de programme en C.
J'ai donc crée une structure personnage qui contient le pseudo et les différents attributs de l'avatar (habileté, endurance et chance, attributs qui sont déterminés aléatoirement). Il faut que je puisse tester son habileté et/ou sa chance. J'ai alors crée un sous-programme mais il ne fonctionne pas vraiment.
1er problème : par exemple, si l'habileté initiale vaut 7, deux lancés de dé valent 6, il va me dire "Vous n'êtes pas habile" alors que si ou inversement.
2ème problème : j'aimerais qu'après le test effectué, l'habileté initiale soit diminuée de 1 mais je n'y arrive pas.
Voici le code source :
Désolé, je ne sais pas comment être plus clair.
Merci de votre aide.
EDIT : J'ai réglé mes problèmes mais j'ai une question: faut-il que que je mette cette instruction :
dans mon if et dans mon else ou est-ce qu'il y a moyen de le mettre une seule fois, quelque soit le cas dans lequel on se trouve? Voici mon code pour le sous programme en question :
Message édité par kolorius le 10-05-2014 à 23:10:08