Concevoir un programme de calcul en c

Résolu/Fermé
faidherbe111 Messages postés 8 Date d'inscription vendredi 4 octobre 2013 Statut Membre Dernière intervention 7 novembre 2013 - 24 oct. 2013 à 19:22
faidherbe111 Messages postés 8 Date d'inscription vendredi 4 octobre 2013 Statut Membre Dernière intervention 7 novembre 2013 - 26 oct. 2013 à 02:16
Bonjour tout le monde s'il vous plait je sollicite votre aide afin de m'aider à résoudre cet exercice ci-dessous , merci pour tout vos solutions.

concevoir et rédiger un programme en c qui permet de calculer la moyenne de trois nombre s réels et d'afficher ceux qui sont supérieur à la moyenne.

A voir également:

6 réponses

Atienon Messages postés 136 Date d'inscription lundi 17 décembre 2012 Statut Membre Dernière intervention 29 juillet 2015 32
24 oct. 2013 à 19:26
Au risque d'avoir mal compris, je trouve que c'est assez simple. Tu demandes à ce qu'on renseigne les trois nombres S, tu mets chaque nombres dans une variable. Tu crées une autre variable dans laquelle tu divises la somme des trois nombres S par trois.
Puis après une condition, dans laquelle tu testes pour chaque variable si elle est supérieure à la moyenne et dans ce cas un print pour annoncer que le S, dans ce cas-là est supérieur à la moyenne. (?)
0
faidherbe111 Messages postés 8 Date d'inscription vendredi 4 octobre 2013 Statut Membre Dernière intervention 7 novembre 2013
24 oct. 2013 à 19:50
merci Atienon pour ta réponse mais moi j'ai un très gros problème avec les algorithmes et je désir apprendre à l'aide d'exercices puis corrigés , mais au moins résoudre cet exercice de ta part ou des autres utilisateurs de commentcamarche.net me sera beaucoup utile , merci!!
0
Atienon Messages postés 136 Date d'inscription lundi 17 décembre 2012 Statut Membre Dernière intervention 29 juillet 2015 32
Modifié par Atienon le 24/10/2013 à 20:40


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int premier_nombre, deuxieme_nombre, troisieme_nombre, moyenne; //On déclare les variables mais j'ai oublié de les initialiser


//On demande les trois nombres S

printf("Veuillez entrer le premier nombre");
scanf("%d", &premier_nombre);
printf("Veuillez entrer le deuxieme nombre");
scanf("%d", &deuxieme_nombre);
printf("Veuillez entrer le troisieme nombre");
scanf("%d", &troisieme_nombre);

moyenne=(premier_nombre+deuxieme_nombre+troisieme_nombre)/3; //On fait la moyenne

printf("La moyenne est de %d", &moyenne); //On l'affiche


//On regarde si les nombres qui ont été émis sont supérieurs à la moyenne, et si oui on affiche un message
if (premier_nombre>moyenne)
{
printf("Le premier nombre %d est supérieur à la moyenne", &premier_nombre);
}
elseif(deuxieme_nombre>moyenne)
{
printf("Le deuxieme nombre %d est supérieur à la moyenne", &deuxieme_nombre);
}
elseif(troisieme_nombre>moyenne)
{
printf("Le troisieme nombre %d est supérieur à la moyenne", &troisieme_nombre);
}

return 0;
}


Voilà, je l'ai codé à la va-vite mais je pense qu'il tient la route et qu'il pourra t'aider.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
24 oct. 2013 à 23:43
Dans les printf, on ne met pas les & sinon tu affiches l'adresse des variables...

elseif
Ca n'existe pas en C. Il s'agit de : else if (deux mots clés contrairement à d'autres langages).

Et l'algorithme n'est pas bon. Il ne faut pas mettre des else if, sinon tu n'afficheras pas toutes les variables supérieures à la moyenne.

Enfin, à la fin, il faut faire un affichage de '\n' ou faire un flush explicite.
0
Atienon Messages postés 136 Date d'inscription lundi 17 décembre 2012 Statut Membre Dernière intervention 29 juillet 2015 32
25 oct. 2013 à 00:24


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int premier_nombre, deuxieme_nombre, troisieme_nombre, moyenne; //On déclare les variables mais j'ai oublié de les initialiser


//On demande les trois nombres S

printf("Veuillez entrer le premier nombre");
scanf("%d", &premier_nombre);
printf("Veuillez entrer le deuxieme nombre");
scanf("%d", &deuxieme_nombre);
printf("Veuillez entrer le troisieme nombre");
scanf("%d", &troisieme_nombre);

moyenne=(premier_nombre+deuxieme_nombre+troisieme_nombre)/3; //On fait la moyenne

printf("La moyenne est de %d.\n", moyenne); //On l'affiche


//On regarde si les nombres qui ont été émis sont supérieurs à la moyenne, et si oui on affiche un message
if (premier_nombre>moyenne)
{
printf("Le premier nombre %d est supérieur à la moyenne.\n", premier_nombre);
}
if (deuxieme_nombre>moyenne)
{
printf("Le deuxieme nombre %d est supérieur à la moyenne.\n", deuxieme_nombre);
}
if(troisieme_nombre>moyenne)
{
printf("Le troisieme nombre %d est supérieur à la moyenne.\n", troisieme_nombre);
}

return 0;
}

Merci, effectivement je n'avais pas codé en C depuis deux ans mais ça revient ^^ je pense que cette version est plus adaptée.
0
zlavtok Messages postés 469 Date d'inscription jeudi 24 janvier 2013 Statut Membre Dernière intervention 25 octobre 2013 114
25 oct. 2013 à 09:37
Sur une division par 3 il y a fort a parier que la moyenne que tu vas afficher soit en réalité inférieur a la moyenne (mathématique). Dans deux tiers des cas elle le sera du moins.

Il serait donc plus judicieux d'utiliser des variables à virgule, pour gagner en précision non ?
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
25 oct. 2013 à 13:40
oui, surtout que c'est dans l'énoncé... "la moyenne de trois nombre s réels"

en C, un nombre réel, cela serait des float ou double

https://www.commentcamarche.net/contents/196-langage-c-les-types-de-donnees


Dal
0
faidherbe111 Messages postés 8 Date d'inscription vendredi 4 octobre 2013 Statut Membre Dernière intervention 7 novembre 2013
25 oct. 2013 à 04:57
bonsoir Atienon, bonsoir fiddy , je vous remercie infiniment pour votre aide!!!! et si je pouvais devenir super bon en programmation comme vous , je serai très heureux !!
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 3 895
Modifié par BunoCS le 25/10/2013 à 09:18
Bonjour,

et si je pouvais devenir super bon en programmation comme vous , je serai très heureux
Au risque de jeter un pavé dans la mare, tu n'y arrivera pas si tu ne travailles pas par toi-même... Atienon a été sympa de te filer le code: tu va le montrer à tes potes/profs, tu sera content mais lors du prochain exercice, tu n'aura rien appris ni retenu...

Je trouve ça dommage et je t'encourage vivement à chercher par toi-même avant de venir chercher de l'aide.
Pour rappel, voici la position de CCM concernant les demandes d'aide pour les exercices

@+
Buno, Modo CS-CCM
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
The urgent is done, the impossible is underway. For miracles, envisage a time ...
0

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

Posez votre question
faidherbe111 Messages postés 8 Date d'inscription vendredi 4 octobre 2013 Statut Membre Dernière intervention 7 novembre 2013
25 oct. 2013 à 11:33
Bonjour BrunoCS merci, et j'ai désormais compris la léçon, je chercherai par moi-même!!!!! merci et bonne journée à tous!!!
0
zlavtok Messages postés 469 Date d'inscription jeudi 24 janvier 2013 Statut Membre Dernière intervention 25 octobre 2013 114
25 oct. 2013 à 14:19
Oh tu sais c'est plus une leçon qu'un conseil, mais n'oublie pas une chose très importante, ces exercices ont pour but de te faire chercher des solutions par toi même afin de te stimuler, sans cela tu ne pourra rien apprendre.

Bonne continuation.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
25 oct. 2013 à 14:50
Pour info, en C on utilise par défaut les doubles plutôt que les float (sauf si besoin impératif de mémoire genre l'embarqué).
0
faidherbe111 Messages postés 8 Date d'inscription vendredi 4 octobre 2013 Statut Membre Dernière intervention 7 novembre 2013
26 oct. 2013 à 02:16
bonsoir tout le monde encore merci
0