Pour réussir l'exercice, tu dois saisir les poids des membres de chaque équipe, équipier par équipier, puis additionner tous ces poids. Une façon possible est d'utiliser des tableaux : un pour les membres de la première équipe, un pour les membres de la seconde. Si tu n'as pas vu la notion de tableaux, il faut lire les poids un par un dans une boucle et, en même temps qu'on les lit, additionner les poids.
Pour trouver l'algorithme, on peut d'abord réfléchir à comment on ferait sans ordinateur (souvent [toujours ?], pour trouver un algorithme, il faut d'abord réfléchir avec un papier et un crayon). Sans ordinateur, tu aurais deux assistants : un pour effectuer les mesures (appelons-le Merlin, Me comme mesure) et un autre pour calculer le poids total (Calvin ‒ Ca comme calcul). Ton rôle serait d'appeler les équipiers un par un pour se faire mesurer.
Martin ‒ Équipier n°1 !
Merlin ‒ 110 kg.
Calvin ‒ OK, donc 110 kg.
Martin ‒ Équipier n°2 !
Merlin ‒ 95 kg.
Calvin ‒ OK, donc maintenant ça fait 205 kg.
Martin ‒ Équipier n° 3 !
Merlin ‒ 125 kg (oui, c'est une équipe de costauds...)
Calvin ‒ OK, donc maintenant ça fait 330 kg.
et ainsi de suite. Tu vois qu'il y a une boucle, qu'elle commence à 1 (l'équipier n°1) et qu'elle finit à... (je te laisse trouver combien). Dans la boucle, on effectue deux opérations : mesurer le poids (donc saisir une donnée) et faire un calcul...
Pour réussir l'exercice, tu dois saisir les poids des membres de chaque équipe, équipier par équipier, puis additionner tous ces poids. Une façon possible est d'utiliser des tableaux : un pour les membres de la première équipe, un pour les membres de la seconde. Si tu n'as pas vu la notion de tableaux, il faut lire les poids un par un dans une boucle et, en même temps qu'on les lit, additionner les poids.
- Edité par robun il y a 2 minutes
Merci beaucoup pour l'erreur à la ligne 8
J'ai pas encore vu comment additionner des nombres dans une boucle.Pourrais tu me montrer comment écrire cette partie de code.
Si tu as vu comment additionner des nombres, et si tu as vu les boucles, alors tu sais additionner les nombres dans une boucle.
Par exemple pour calculer \( 1+2+ \dots +5\) on fait :
int somme = 0 ; // on initialise la somme
for (int i = 1 ; i <= 5 ; i++)
{
somme += i ; // on « incrémente » la somme (équivalent à somme = somme + i)
}
printf("Somme = %d\n", somme) ;
Pour comprendre ce que fait l'algorithme on le déroule à la main :
Si j'ai bien compris, dans le cas de l'exercice cela permet de calculer le poids total des 2équipes (nb de personnes)
Or parmi les valeurs que je dois entrer : le premier poids est celui d'un joueur de la 1re équipe, le deuxième poids celui d'un joueur de la 2e équipe, le troisième la 1re équipe, le quatrième la 2e équipe, etc.
Dans ce cas comment se comportera ma boucle "For" et doit-on réaliser 8 scanf pour y rentrer les valeurs ?
Je serais toi, je m'occuperai d'une équipe d'abord (avec une boucle for), et de l'autre équipe ensuite (avec une nouvelle boucle for). Et ensuite, il n'y aura plus qu'à comparer les poids totaux de l'une et de l'autre.
Ah non : je viens de relire l'énoncé, tu es obligé de saisir les deux équipes à tour de rôle. OK. Dans ce cas, saisis les poids des deux équipes dans le même tour de boucle, sinon ça va être trop compliqué.
Par exemple, s'il y avait juste des poids à saisir :
for (i = 1 ; i <= nbMembres ; i++)
{
int poids1, poids2 ;
printf("Équipe 1 - Poids du joueur n°%d ? ", i) ;
scanf("%d", &poids1) ;
printf("Équipe 2 - Poids du joueur n°%d ? ", i) ;
scanf("%d", &poids2) ;
}
Mais ce n'est pas complet car il faut, à l'intérieur de la boucle, effectuer le calcul du poids total de l'équipe. Probablement en utilisant la technique que j'ai montrée plus haut.
edgarjacobs te l'a déjà signalé : tu n'utilises pas correctement l'instruction 'for'. Regarde mes exemples. Pour écrire une boucle allant de 1 à N, on n'écrit pas :
for (i=1, i=N, i++)
mais
for (i=1, i<=N, i++)
C'est comme ça, c'est la syntaxe choisie par les concepteurs du langage. Il y a trois parties : l'initialisation (i=1), la condition de poursuite de la boucle (tant que i<=N) et l'incrémentation (i++). Telle que tu l'as écrite, la condition de poursuite de la boucle est « tant que le résultat de l'affectation i=nbMembres*2 est vrai » (car en plus tu as utilisé =, opérateur d'affectation, au lieu de ==, opérateur de comparaison). Comme cette affectation est un nombre non-nul, le résultat est considéré comme vrai, donc on poursuit la boucle (avec une valeur de i complètement fausse !).
Attention : puisque la boucle traite un joueur de chaque équipe (et non pas un joueur d'une seule équipe), tu dois aller de 1 à nbMembres, pas de 1 à nbMembres*2.
À la ligne 16, tu as fait une faute de frappe (poids2, pas poids1).
Non seulement tu as le droit de mettre le calcul de somme des poids à cet endroit, mais c'est précisément ce qu'il faut faire. Par contre, tes deux variables 'somme' (celle à l'extérieur de la boucle, et l'autre à l'intérieur) ne servent à rien (donc enlève-les) puisque la somme est calculée dans les variables 'a' et 'b' (et c'est ce qu'il faut faire ‒ sauf que tu as oublié de les initialiser à 0).
Remarque : les lignes 22-23 et 28-29 sont identiques, tu pourrais peut-être les sortir du 'if' ?
Bonjour ta condition de ta boucle for ne risque pas de fonctionner :
for(i=1;i=nbMembres;i++)
Tu mets un seul égal a ta condition ce qui fait que tu met dans ta variable i la valeur du calcul nbMembres*2 alors qu'il faudrait faire :
for(i=1;i==nbMembres;i++)
Ou la tu met bien == et non = ce qui permet de dire que c'est si i est égal a nbMembres*2.
Deuxième conseil : initialise tes valeur lors de leur déclaration , c'est a dire donne leur une valeur (de preference si tu ne veut pas mettre de valeur par defaut particulière met 0) en mettant :
int variable1=0 , variable2=0 , variable3=0 etc....
J'espère t'avoir aidé
EDIT : Je me suis fait devancé par @robun de 5min.
Rasduino pi : attention, c'est nbMembres, pas nbMembres*2, et la condition de poursuite de la boucle est <=, pas ==. (Je sais que tu voulais juste expliquer pourquoi il ne faut pas utiliser =, mais ça pourrait embrouiller MartinAb1.)
Merci énormément pour toutes vos réponses et conseils !! Mon programme m'affiche bien quelle équipe possède un avantage. Par contre il ne m'indique pas le poids total de chaque équipe...Savez-vous d'où vient l'erreur?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent