Pro des math aider moi

Signaler
Messages postés
22
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
16 juillet 2006
-
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
-
je veux faire un prog (sous dos en C)qui donne sur quelle doigt(pouce, index ... va tomber le nombre X.

en gros je que si je tape 56 ou89 sa me donne sous quelle doigt sa va tomber

merci de maider svp

6 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
char* doigt[] = {"pouce", ...};

doigt[X % 5] contient le bon doigt (enfin ca dépend si tu commence a compter à 0 ou à 1...)
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
ya besoin d'etre un pro des maths pour faire une division? lol
Ca veut dire koi doigt[X% 5] vecchio56?

Moi ce que je vois c'est pour 14 par exemple:
14/5=2.8=2*5+4 et 4 le reste correspond au rang du doigt : index ou annulaire tout depend dans quel sens tu pars :)

donc en C pour obtenir le reste tu peux faire:
int nb= 14;
float a=(float)nb/5.0f; //a=2.8
int reste=(int)(a-nb/5)*5; //reste= (2.8-E(14/5))*5, E(x) etant la partie entiere de x

et donc dans la variable reste il ya le rang du doigt entre 1 et 5 si nb n'est pas multiple de 5, sinon reste=0 et alors ca correspondera tjrs au 5eme doigt!
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Ah !

x % y renvoi le reste de la division de x par y

Donc en gros, vecchio avait raison,

Comme toujours quand je n'ai pas répondu avant !
if(!Meilleur("Joky")) return ERREUR;<
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
euh a mon avis au niveau des cast ca doit etre un peu plus compliqué pour pas avoir de warning...
Je pense que c'est plutot ca:

int nb= 14;
float a=(float)nb/5.0f; //a=2.8
int reste=(int)(a-(float)(nb/5))*5; //reste= (2.8-E(14/5))*5, E(x) etant la partie entiere de x

il faut en fait toujours veiller a ce que les operations soient faites uniquement entres variables du meme type...
Enfin je dis ca mais ya surement deja une fct en C qui fait la division euclidienne! Mais je me souviens pas du nom...
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
waw c'est presque du direct! lol!
Je pense qu'il y a quand meme une erreur... lorsque x est un multiple de 5 ca fait 0 et non 5 si on dit que 1 est le 1er doigt
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
5 % 5 = 0 car 5 = 1*5 + 0



Après suffit d'adapter son tableau de doigt lol

char *MesDoigtsBizarre[] = {"Auriculaire", "Pouce", "Index", "Majeur", "Annulaire"};



donc

MesDoigtsBizarre[1%5] -> Pouce // 1 = 0*5 + 1

MesDoigtsBizarre[2%5] -> Index // 2 = 0*5 + 2

...

...

MesDoigtsBizarre[5%5] -> Auriculaire // 5 = 1*5 + 0

Et voilà

Maintenant ça dépend de vos doigts
if(!Meilleur("Joky")) return ERREUR;<