Exo langage C

diazendo Messages postés 27 Statut Membre -  
diazendo Messages postés 27 Statut Membre -
j'aimerais savoir comment faire pour que le programme exclut les caracteres et les notes au dessus de 20

#include <stdio.h>
#include<conio.h>//getch()
main()
{
int i=0;
float somme=0,
note=0;
printf("entrez des notes entre 0 et 20, pour quitter entrez un nombre negatif \n");
while (note>=0)
{
printf("Entrez une note: \n");
fflush(stdin);
scanf("%f", &note);
somme = somme+note;
i = i+1;
}
if (i<=20)
{
somme = somme-note;
somme = somme / (i-1);
printf("moyenne de ces notes:%f\n",somme);
}
else
getch();
}

11 réponses

  1. jojo150393 Messages postés 365 Statut Membre 23
     
    while (note>=0 || note <=20)

    sa revient a faire un encadrement en math : 0>= x <= 20 ;

    Pour les caracteres je sais pas trop. Normalement sa ne devrait pas les accepter car ton scanf permet prendre que des types float et donc des nombres.

    Je suis qu'amateur donc si je dis des bêtises ne me gueulais pas trop dessus ^^
    0
  2. diazendo Messages postés 27 Statut Membre
     
    ho non merci jojo ca m'aide bien ca m'a permis d'avancer mais maintenant kansd je tape -1 par exemple ca sort pas.
    0
  3. jojo150393 Messages postés 365 Statut Membre 23
     
    si tu veux aussi accpeter des nombres négatifs ( bisard pour des notes mais bon...) tu met : while(note<=20 )
    ainsi, ton programme s'executera tant que tes notes seront inférieurs à 20.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. diazendo Messages postés 27 Statut Membre
     
    non en fait quand je met une note negative ca doit faire le calcul de la moyenne!
    0
  6. jojo150393 Messages postés 365 Statut Membre 23
     
    voila ton programme qui marche bien normalement.

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

    int main()
    {
    // initialisation des variables
    float note = 0;
    float somme = 0;
    int nombre_note = 0; // dans ton programme je crois que c'était i, pense a bien donner des noms de variable qui permettent une meilleur compréhension

    float moyenne = 0;

    //pour mieux condenser ton code tu peux initialiser tes variables comme sa :
    float note, somme;
    int nombre_note;
    nombre_note = somme = note =0;

    while(1) //boucle infini
    {
    printf("entrez une note:");
    scanf("%f", &note); // l'utilisateur rentre sa note

    if (note <= 20 && note >= 0) // i la note et compris entre 0 et 20 .... ( le "&&" veut dire "ET" et "||" veut dire "OU)
    {
    nombre_note++; //on augmente le nombre de note
    somme = somme + note ; //on incrémente somme avec la nouvelle note
    }

    if (note < 0) //si la note est negative, alors on casse la boucle infinie
    {
    break;
    }

    }

    moyenne = somme / nombre_note ; //la moyenne est la somme des notes divisé par le nombre de note

    printf("%f", moyenne); //on affiche la moyenne .

    return 0;
    }
    0
  7. jojo150393 Messages postés 365 Statut Membre 23
     
    alors bien ou pas bien ?
    0
    1. diazendo Messages postés 27 Statut Membre
       
      hé ben t'es un pro toi !merci
      0
  8. diazendo Messages postés 27 Statut Membre
     
    oui mais en fait le i sur mon programme c'est le compteur !
    0
  9. jojo150393 Messages postés 365 Statut Membre 23
     
    ouais ben c'est donc le nombre de note que rentre l'utilisateur non?
    0
  10. diazendo Messages postés 27 Statut Membre
     
    oui c'est bien ca
    0
  11. jojo150393 Messages postés 365 Statut Membre 23
     
    si ta d'autre question n'hésite pas :) mais je te conseil de supprimer le programme que j'ai fait et de le faire toi-même comme sa sa apprend plus que de faire un copier coller ^^.
    0
    1. jojo150393 Messages postés 365 Statut Membre 23
       
      Pour améliorer ton programme ajoute un systeme de coeficient :)
      0
    2. diazendo Messages postés 27 Statut Membre
       
      ok pas de probleme jojo tu m'a été d'un grand secour,encore merci et si un jour je peu faire klk chose ,n'hesite pas :)!!!!encore merci
      0