Exo langage C

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

  • Votes
  • Date
  • Date décroissante
  1. 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 ^^
    1. 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.
      1. 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.
        1. non en fait quand je met une note negative ca doit faire le calcul de la moyenne!
          1. 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;
            }
            1. ouais ben c'est donc le nombre de note que rentre l'utilisateur non?
              1. 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 ^^.
                1. Pour améliorer ton programme ajoute un systeme de coeficient :)
                2. 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