Comment multiplier des variables en C ?
Fermé
lajolla
-
18 déc. 2013 à 15:36
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 19 déc. 2013 à 19:23
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 19 déc. 2013 à 19:23
A voir également:
- Comment multiplier des variables en C ?
- Signe multiplier clavier - Forum Clavier
- Multiplier des heures excel ✓ - Forum Excel
- Signe multiplié! ✓ - Forum Bureautique
- Youtube multiplier downloader - Télécharger - Conversion & Codecs
5 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 18/12/2013 à 16:07
Modifié par fiddy le 18/12/2013 à 16:07
Bonjour,
Tu tires un nombre au hasard :
Si nb vaut 0 alors tu multiplies par V2, sinon tu multiplies par V3.
Ou en plus concis :
Google is your friend
Tu tires un nombre au hasard :
int nb; srand(time(NULL)); nb=rand() % 2;
Si nb vaut 0 alors tu multiplies par V2, sinon tu multiplies par V3.
int resultat = V1; if (nb == 0) resultat *= V2; else resultat *= V3;
Ou en plus concis :
int resultat = V1 * (nb == 0) ? V2 : V3
Google is your friend
Merci de vos réponses mais aucune des deux ne résous mon problème je vais essayer d'être plus clair : j'éssaye de créer un programme pour vérifier ses tables de 0 à 10 et je voudrai que entre ces nombre 2 soient choisis au hasards et multipliés l'un par l'autre à partir de ça je sait faire mais je cherche ce morceau de code
Comment faire pls ?
Google is your friend
Comment faire pls ?
Google is your friend
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
18 déc. 2013 à 17:17
18 déc. 2013 à 17:17
Poste le code que tu as fait en tenant compte de mes remarques. N'oublie pas d'utiliser la balise "code" (bouton à droite du bouton souligné).
J'ai l'impression que tu as changé ton énoncé..
Donne plutôt un exemple détaillé de ce que tu souhaites faire.
J'ai l'impression que tu as changé ton énoncé..
Donne plutôt un exemple détaillé de ce que tu souhaites faire.
Ben en fait , pour le moment j'ai pas grand chose :
comme dit plus haut je voudrai faire un testeur de table de multiplication :
le programme choisi 2 des variables au hasard et les multiplie . L'utilisateur entre le resultat qui lui semble juste et si c'est juste le programme lui dit via un printf sinon il le lui dit aussi .
#include <stdio.h>
#include <stdlib.h>
int main()
{
int V1 = 1,V2 = 2,V3 = 3,V4 = 4,V5 = 5,V6 = 6,V7 = 7,V8 = 8,V9 = 9,V10 = 10,nb1 = 0,nb2 = 0,produit = 0,resultat = 0;
/*le passage que je ne connais pas cad : on tire deux variable au hasard sachant que l'une deviendra nb1 et l'autre nb2 entre
V1 et V10 ,elles sont multipliés l'une par l'autre et donnent un multiplication que l'ont affiche à l'utilisateur */
produit = nb1 * nb2;
printf("entrez le nombre que vous pensez juste : %d x %d = ",nb1,nb2);
scanf("%d",&resultat);
if (resultat == produit)
{
printf("Bravo,vous avez trouve le bon resultat !!!");
}
else
{
printf("Desole,vous vous etes trompe.Vous ferez mieux la prochaine fois !!!");
}
system("PAUSE");
return 0;
}
comme dit plus haut je voudrai faire un testeur de table de multiplication :
le programme choisi 2 des variables au hasard et les multiplie . L'utilisateur entre le resultat qui lui semble juste et si c'est juste le programme lui dit via un printf sinon il le lui dit aussi .
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
19 déc. 2013 à 16:20
19 déc. 2013 à 16:20
Bonjour,
Je ne connais pas suffisamment le C pour te proposer une syntaxe qui compile.
Mais sur le principe, le plus extensible serait de placer tes variables dans un tableau, puis d'utiliser RAND pour choisir quelle case du tableau va être utilisée.
Xavier
Je ne connais pas suffisamment le C pour te proposer une syntaxe qui compile.
Mais sur le principe, le plus extensible serait de placer tes variables dans un tableau, puis d'utiliser RAND pour choisir quelle case du tableau va être utilisée.
Xavier
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
19 déc. 2013 à 17:56
19 déc. 2013 à 17:56
C'est vrai.
Mais ici, il n'y a même pas besoin de tableau puisque les valeurs se suivent. Il suffit de générer un nombre entre 0 et 10 (compris). Cf. mon précédent post (#15)
Mais ici, il n'y a même pas besoin de tableau puisque les valeurs se suivent. Il suffit de générer un nombre entre 0 et 10 (compris). Cf. mon précédent post (#15)
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
Modifié par Reivax962 le 19/12/2013 à 18:44
Modifié par Reivax962 le 19/12/2013 à 18:44
Oui, enfin sauf que ne connaissant pas la finalité du truc, il est délicat de se prononcer sur ce à quoi ressemblera le programme au final. En utilisant un tableau on facilite l'adaptation future.
Dans le fil de discussion, on est déjà passé de trois variables indéterminées à 10 variables séquentielles, autant donner une solution qui ne changera pas toutes les heures ;-)
Bon, ceci étant dit, ton approche est au moins aussi juste que la mienne. Elle est plus rapide, plus directe et plus lisible. Mais je dois avoir un peu plus l'habitude de traiter avec des clients qui changent d'avis en cours de route ^^'
Dans le fil de discussion, on est déjà passé de trois variables indéterminées à 10 variables séquentielles, autant donner une solution qui ne changera pas toutes les heures ;-)
Bon, ceci étant dit, ton approche est au moins aussi juste que la mienne. Elle est plus rapide, plus directe et plus lisible. Mais je dois avoir un peu plus l'habitude de traiter avec des clients qui changent d'avis en cours de route ^^'
WillyInfo
Messages postés
2
Date d'inscription
jeudi 19 décembre 2013
Statut
Membre
Dernière intervention
19 décembre 2013
Modifié par WillyInfo le 19/12/2013 à 18:38
Modifié par WillyInfo le 19/12/2013 à 18:38
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char **argv) { int resultat_aleatoire=0; //3 variables int Tab[3] = {1,2,5}; //init nbr aleatoire srand(time(NULL)); resultat_aleatoire=Tab[rand()%sizeof(Tab)]*Tab[rand()%sizeof(Tab)]; printf("Resultat =>%d\n",resultat_aleatoire); getchar(); return 0; }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
19 déc. 2013 à 18:31
19 déc. 2013 à 18:31
Bonjour WillyInfo,
Quand tu postes un code, merci d'utiliser la balise "code" située à droite du bouton "souligné". C'est plus lisible.
main => il manque les parenthèses.
Le bon prototype de main() est : int main(void) ou int main(int argc, char **argv)
resultat_aleatoire=Tab[rand()%3]*Tab[rand()%3];
Plutôt que mettre 3, je te conseille de mettre sizeof Tab/sizeof *Tab. C'est plus maintenable.
Et enfin, n'oublie pas le return 0; en fin de programme pour dire que tout s'est bien déroulé.
Quand tu postes un code, merci d'utiliser la balise "code" située à droite du bouton "souligné". C'est plus lisible.
main => il manque les parenthèses.
Le bon prototype de main() est : int main(void) ou int main(int argc, char **argv)
resultat_aleatoire=Tab[rand()%3]*Tab[rand()%3];
Plutôt que mettre 3, je te conseille de mettre sizeof Tab/sizeof *Tab. C'est plus maintenable.
Et enfin, n'oublie pas le return 0; en fin de programme pour dire que tout s'est bien déroulé.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
19 déc. 2013 à 19:23
19 déc. 2013 à 19:23
Il a plus de gueule ton post :-). Mais c'est sizeof Tab/sizeof *Tab qu'il faut mettre. C'est pas / pour dire l'un ou l'autre mais c'est l'opérateur de division.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
18 déc. 2013 à 15:55
18 déc. 2013 à 15:55
Essaye avec sa :
calcul = (rand() % (v2 - v2)) * v1);
ou regarder ici : http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-c/les-calculs-de-base
calcul = (rand() % (v2 - v2)) * v1);
ou regarder ici : http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-c/les-calculs-de-base
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
18 déc. 2013 à 16:00
18 déc. 2013 à 16:00
Et
v3dans tout ça?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
18 déc. 2013 à 16:08
18 déc. 2013 à 16:08
v2 - v2 = 0... Et puis ta commande ne répond pas à sa question. Cela ne multiplie pas par V2 ou V3 en fonction de rand()...
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
18 déc. 2013 à 16:59
18 déc. 2013 à 16:59
Non ça va choisir un nombre au pif entre 0 et v2-v3, puis multiplier ça a v1, et c'est pas ce qu'il cherche non plus. Tu ferais mieux de finir de lire le tutoriel que tu lui a envoyé avant de dire n'importe quoi.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
18 déc. 2013 à 17:13
18 déc. 2013 à 17:13
J'aurais pas mieux dit :-)