FORUM Tom's Hardware » Programmation » C / C++ / Java » Besoin d'aide pour un programme
 

Besoin d'aide pour un programme

Il y a 408 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Besoin d'aide pour un programme
 
Plus d'informations

Bonjour! Je suis étudiante à l'université et je suis un cours (optionnel) d'intro à la programmation!

Il nous est demandé d'écrire un programme qui lit trois valeurs entières (nb1, nb2 et nb3), affiche la médiane (milieu) des trois
valeurs ou un message dans le cas où les nombres sont tous égaux ou égaux deux à deux.

voici ce que j'ai fait mais ça ne semble pas fonctionner! Est-ce que qqn pourrait svp m'aider et me dire ce qui cloche?? Je vous en serais énormément reconnaissante!

#include <stdio.h>
void main ()
{


//déclaration des variables
int nb1, nb2, nb3 // Les trois nombres que l'utilisateur doit entrer
int Mediane // chiffre milieu


// saisie des donnees

printf("Entrer nb1: " );
scanf("%d", &nb1);

printf("Entrer nb2: " );
scanf("%d", &nb2);

printf("Entrer nb3: " );
scanf("%d", &nb3);


// attribution de la Médiane
if (nb1=nb2=nb3)
printf("Médiane n'existe pas, tous les chiffres sont égaux\n" );

else if
{
if(nb1=nb2)
printf("Les chiffres sont égaux deux à deux\n" );
else if (nb1=nb3)
printf("Les chiffres sont égaux deux à deux\n" );
else (nb2=nb3)
printf("Les chiffres sont égaux deux à deux\n" );

}

else
{
if( nb1>=nb2>=nb3)
printf("La Médiane est nb2\n" );
else if (nb2>=nb1>=nb3)
printf("La Médiane est nb1\n" );
else (nb1>=nb3>=nb2)
printf("La Médiane est nb3\n" );
}

getch();
}

Merci beaucoup à l'avance!

pourquoi faire cent fois la même chose ?
Plus d'informations

- il manque plein de points virgules partout
- dans un if il ne faut pas confondre = et ==
- a==b==c ne va pas marcher non plus, mais a==b && b==c si
- après un else, met soit rien soit un if (quelque chose), pas un mélange des deux
- ton compilo ne va peut être pas aimer le fait que main retourne du void


Message édité par Batchy le 02-10-2006 à 20:50:03
Profil : Pointeur
Plus d'informations

- balise [code]

Plus d'informations

Merci énormément pour votre aide! Toutefois, lorsque je compile, le programme me donne une erreur après le premier printf, je ne saisis pas pourquoi! De toute façon, je vous remercie beaucoup de vos conseils, je les mets en application immédiatement!

Profil : Pointeur
Plus d'informations

relis les conseils de batchy :o

Plus d'informations

Spoiler :


Voici le programme modifié! Y voyez-vous toujours des erreurs?

// Calcul de la médiane
// fait par Andrée-Eve Larue et Cassandra Larue
// 12 Octobre 2006
#include <stdio.h>
void main ()
{


//déclaration des variables
int nb1, nb2, nb3 ; // Les trois nombres que l'utilisateur doit entrer
int Mediane ; // chiffre milieu


// saisie des donnees

printf("Entrer nb1: " );
scanf("%d", &nb1);

printf("Entrer nb2: " );
scanf("%d", &nb2);

printf("Entrer nb3: " );
scanf("%d", &nb3);


// attribution de la Médiane
if (nb1==nb2 & nb2==nb3)
printf("Mediane n'existe pas, tous les chiffres sont egaux\n" );
else if(nb1=nb2)
printf("Les chiffres sont egaux deux a deux\n" );
else if (nb1=nb3)
printf("Les chiffres sont egaux deux a deux\n" );
else if (nb2=nb3)
printf("Les chiffres sont egaux deux a deux\n" );
else if( nb1>nb2>nb3)
printf("La Mediane est nb2\n" );
else if (nb2>nb1>nb3)
printf("La Mediane est nb1\n" );
else (nb1>nb3>nb2)
printf("La Mediane est nb3\n" );




getch();
}


Edit du modo : Je relis les règles et je les applique.


Message édité par le 03-10-2006 à 01:28:52
^-^Multi threading Master ^-^
Plus d'informations

Corrige cette patie,
== <=> équivalence
= <=> on affecte une valeur

Code :
  1. else if(nb1==nb2)
  2. printf("Les chiffres sont egaux deux a deux\n" );
  3. else if (nb1==nb3)
  4. printf("Les chiffres sont egaux deux a deux\n" );
  5. else if (nb2==nb3)
  6. printf("Les chiffres sont egaux deux a deux\n" );



perso, j'aurais écrit:

Code :
  1. else if ( (nb1==nb2) || (nb1==nb3) || (nb2==nb3) )
  2. printf("Deux chiffres sont égaux\n" );


Comme tu as déjà testé le cas ou les 3 chiffres sont égaux, tu peux utilisé ce test ( || signifiant "ou" ) pour verifier si 2 nombres sont égaux.
Sinon complète tes phrases pour dire "Les chiffres nb1 et nb2 sont egaux deux a deux" par exemple, pour enrichir ton texte, et expliciter dans quel cas d'égalité tu es.


Message édité par shidosh le 17-10-2006 à 12:39:08
Profil : Pointeur
Plus d'informations

et puis tes > en cascade ca passe pas :o

^-^Multi threading Master ^-^
Plus d'informations

a écrit :

et puis tes > en cascade ca passe pas :o


Oui en effet, tu devrais mieux ecrire

Code :
  1. else if( (nb1>nb2) && (nb2>nb3) )   
  2. printf("La Mediane est nb2\n" ); 
  3. else if ( (nb2>nb1) && (nb1>nb3) ) 
  4. printf("La Mediane est nb1\n" ); 
  5. else  (( nb1>nb3) && (nb3>nb2)) 
  6. printf("La Mediane est nb3\n" );


Les comparaisons en C/C++ se font toujours entre 2 éléments.
De plus tu as oublié des cas pour cette partie, et ce code est faux
Si je donne:
2 3 4 -> Cas traité, la médiane est nb3 (Erreur !)
4 3 2 -> Cas non traité
3 2 4 -> Cas non traité
4 2 3 -> Cas non traité
3 4 2 -> Cas traité, la médiane est nb1
2 4 3 -> la médiane est nb2 (Erreur !)

Perso, j'écrirais ceci (cette solution n'est pas la mieux, mais est assez compréhensible):

Code :
  1. if ( nb1 > nb2) {
  2.     if  ( nb2 > nb 3  && nb1 > nb3) {
  3.           printf("La Mediane est nb2\n" );
  4.     } else if ( nb2 < nb 3  && nb1 > nb3) {
  5.           printf("La Mediane est nb3\n" );
  6.     } else {
  7.           printf("La Mediane est nb1\n" );
  8.     }
  9. }
  10. # On sais déja que nb1 < nb2
  11. else if ( nb1 > nb3){
  12.     printf("La Mediane est nb1\n" );
  13. }
  14. # On sais déja que nb1 < nb2 et que nb1 < nb3
  15. else if  (nb2 > nb3){
  16.     printf("La Mediane est nb3\n" );
  17. } else {
  18.     printf("La Mediane est nb2\n" );
  19. }


Message édité par shidosh le 18-10-2006 à 13:41:57

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » C / C++ / Java » Besoin d'aide pour un programme
 

Annonces Google