Interrogation sur les test de conditions.

Résolu/Fermé
sikim69 Messages postés 33 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 30 mars 2013 - 9 nov. 2012 à 15:02
 Utilisateur anonyme - 9 nov. 2012 à 15:34
Bonjour, aujourd'hui je viens d'avoir mon premier controle sur les test de conditons.
J'aimerais avoir votre avis sur mon "programme", et me dire comment je pourrais faire pour l'ameliorer et/ou le corriger ^^

Je vous met l'ennoncer et ensuite comment j'ai fait.

Le programme propose le menu suivant :

1. Calculer une moyenne pondérée sur 2 notes
2. Calculer le pourcentage acquis
3. Demander une explication

Tout autre choix que 1,2,3 entrainera l'affichage d'un message d'erreur

Si l'utilisateur choisis 1 :
Il doit entrer deux notes sur 20 (à ne pas verifier)
La moyenne est calculé sur base de la ponderation suivante : la premiere note compte pour 40 % et la deuxieme pour 60 %. Ne rien afficher ici.

Si l'utilisateur choisis 2 :
Il doit entrer une note sur 20 (à ne pas verifier) Le programme calcule en pourcentage.
Si la moyenne ainsi calculée depasse les 60 % alors afficher "Cours reussi".

Si l'utilisateur choisis 3 :
Le programme demande si l'utilisateur veut prendre rendez vous. Si oui, il affiche "on vous recontactera". Dans le cas contraire , il affiche "Bureau ouvert de 8h à 11h"

En fin de programme si un calcul à été effectué, le programme en affiche le resultat.


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

int main ()
{
int choix;
float n1,n2, moyenne;
char reponse [3];
printf("MENU : ");
printf("\n\n1. Calculer une moyenne ponderee sur 2 notes");
printf("\n2. Calculer un pourcentage acquis");
printf("\n3.Demander une explication");
scanf("%d",&choix);

system("CLR");

if (choix==1)
{
printf("Entrez la premiere note sur 20 : ");
scanf("%f",&n1);
printf("\nEntrez la deuxieme note sur 20 : ");
scanf("%f",&n2);
n1=n1*5;
n1=n1/100;
n1=n1*40;
n2=n2*5;
n2=n2/100;
n2=n2*60;
moyenne=n1+n2;
}
else if (choix==2)
{
printf("Entrez la note sur 20 : ");
scanf("%f",&n1);
n1=n1*5;
if (n1>60)
{
printf("\n\nCours reussi ! ");
}
}
else if (choix==3)
{
printf("Voulez vous prendre rendez vous ? ");
scanf("%s",&reponse);
if (reponse=='oui')
{
printf("\n\nNous vous recontacterons");
}
else {
printf("\n\nBureau ouvert tous les jours de 8h a 11h");
}
}
else {
printf("Erreur");
}

if (choix==3)
{
printf("Votre moyenne est de %.2f");
}




getch(); getch();
return 0;
}


Et je pense avoir un probleme, c'est que je n'arrive pas avec la condition (if (reponse==oui). Quand je compile, ca ne marche pas à ce niveau :/



1 réponse

Utilisateur anonyme
9 nov. 2012 à 15:09
Bonjour,
Tout d'abord merci, ça fait plaisir un message bien rédigé et clair!
Cela peut venir, mais pas sur hein, des limites de la fonctions scanf().
Regarde ceci :
https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/16993-la-saisie-de-texte-securisee
Cette fonction est vicieuse ^^
0
sikim69 Messages postés 33 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 30 mars 2013 1
9 nov. 2012 à 15:28
De rien, c'est plus agreable pour ceux qui repondent un texte clair et bien ecrit, qu'un torchon ^^

J'ai parcouru ce lien, merci ! J'ai donc modifié, je peux te l'envoyer par message si ca ne te derange pas ?
0
Utilisateur anonyme
9 nov. 2012 à 15:34
Vas y fais!
0