Pro des math aider moi

cs_chinois57 Messages postés 22 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 16 juillet 2006 - 2 déc. 2005 à 17:28
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 - 2 déc. 2005 à 23:53
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

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 déc. 2005 à 17:51
char* doigt[] = {"pouce", ...};

doigt[X % 5] contient le bon doigt (enfin ca dépend si tu commence a compter à 0 ou à 1...)
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
2 déc. 2005 à 23:39
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!
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
2 déc. 2005 à 23:43
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;<
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
2 déc. 2005 à 23:44
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
2 déc. 2005 à 23:48
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
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
2 déc. 2005 à 23:53
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;<
0
Rejoignez-nous