Aide langage c

Résolu
s'il vous plait qu'elqu 'un peut m'aider
Ecrire un programme qui demande à l'utilisateur de taper des entiers strictement positifs et qui affiche leur moyenne. Lorsqu'on tape une valeur négative, le programme affiche ERREUR et demande de retaper une valeur. Lorsqu'on tape 0, cela signifie que le dernier entier a été tapé. On affiche alors la moyenne. Si le nombre d'entiers tapés est égal à 0, on affiche PAS DE MOYENNE.

voila mon programe mais il camarche po

#include<conio.h>
#include<stdio.h>
main()
{
int n,i,s,k;
float m;
printf("entrer le nmbre des valeur pour la moyenne");
scanf("%d",&n);
s=0;
for (i=1;i<=n;i++){
printf("entrer le nombre N %d \n",i);
scanf ("%d",&s);
s=s+i;}
printf ("some %d",s);
m=0;
m=s/n;
printf ("la moyen de %d nombre est :\t %.2f ",n,m);
getch();
}

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour,

    Tout d'abord main() doit être remplacé par : int main (void); puisque la fonction main renvoie un entier (0 quand tout va bien). Il faut donc mettre return 0; avant l'accolade finale.
    Ensuite, prends l'habitude d'utiliser double qui est mieux que float (sauf quelques cas particuliers)

    printf("entrer le nmbre des valeur pour la moyenne");
    Ca ne respecte pas la logique de l'énoncé. Ton énoncé dit que le dernier chiffre sera un 0. Il faut donc plutôt faire un while pour continuer la boucle tant que la note est différente de 0.

    scanf ("%d",&s);
    Ton énoncé stipule que ton programme doit écrire "ERREUR" lorsque la note est négative. Il faut donc vérifier que la note est positive.

    printf ("la moyen de %d nombre est :\t %.2f ",n,m);
    Ton énoncé précise qu'il ne faut pas afficher la moyenne mais "PAS DE MOYENNE" s'il n'y a aucune note qui a été donnée. Il faut donc faire une condition sur le nombre de note.

    getch();
    Cette fonction (et plus généralement les fonctions de <conio.h>) n'est pas standard. Il vaut mieux utiliser la fonction getchar().

    Apporte à ton programme les remarques ci-dessus et reposte ton programme si tu veux une vérification. N'oublie pas la prochaine fois d'utiliser les balises "code" (à droite du bouton souligner) pour garder la mise en forme du code.

    Cdlt,
    1. tu peux recrit le programe s'il vous plais fiddy
      please
    2. Contributeur
      Bonjour,
      T'apprendras bien plus si tu fais le programme par toi-même.
      Parcontre, n'hésite pas à poser des questions.
  2. Contributeur
    désolé, mais trois variable ne suffiront pas. Il faut en effet savoir le nombre d'itération qui ont étés entrées.
    Comme dis plus haut je en connaît pas bien le C. mais en VB je verrais cela du genre...
    Dim Data()
    Dim NB As Integer
    
    Function Moyenne()
    Dim Nombre As Single, i As Integer, Som As Double
    Static NB As Integer
    Dim g As Integer
        For g = 1 To 4 'Moyenne sur 4 nombre
            Nombre = InputBox("entrez donnée suivante")
            ReDim Preserve Data(g)
            Data(UBound(Data)) = Nombre
            Som = 0
            For i = 0 To UBound(Data)
             Som = Som + Data(i)
            Next  i
            If i > 1 Then
                 Moyenne = Som / (i - 1)
                 MsgBox "Moyenne = " & Som / (i - 1)
            End If
        Next g
    End Function

    Bien sûr ce n'est qu'une piste...
    A+
    1. Contributeur
      Il n'y a pas besoin d'un tableau. C'est compliquél'algorithme pour rien.

      désolé, mais trois variable ne suffiront pas.
      Et pourtant si. C'est un classique de la programmation...

      note : pour récupérer la note de l'utilisateur,
      i : pour incrémenter à chaque note afin de récupérer le nombre de notes entrées au clavier
      somme : pour faire la somme des notes

      Il ne reste plus qu'à afficher somme / i.

      Chez moi, ça fait trois variables. ;-))).
  3. Contributeur
    Non il n'y a pas besoin de tableaux pour cet exercice. Juste trois variables.
    1. Contributeur
      Allez, jour de bonté, je te donne l'algorithme.
      Par contre le code, je te laisse le faire ;-)))
      Déclaration des variables : 
        note : entier 
        i : entier 
        somme : entier  
      Fin déclaration des variables. 
      
      Programme 
         somme <- 0 
         i <- 0 
         Faire 
              Faire 
                   Demander note 
                   Si note < 0 Alors 
                       Afficher "ERREUR" 
                   Fin Si 
               Tant Que note < 0 
      
               Si note > 0 Alors               
                    somme <- somme + note 
                    i <- i + 1 
               Fin Si 
          Tant Que note <> 0 
            
          Si somme == 0 Alors 
               Afficher "PAS DE MOYENNE" 
          Sinon 
               Afficher somme / i 
          Fin Si 
      Fin Programme         
      
      

      Tu remarqueras qu'il n'y a que trois variables et qu'il n'y a pas de tableaux.

      Google is your friend
      1. Contributeur
        Bonjour,
        Je suis pas un spécialiste du C mais il resort que tu ne demande qu'une seule variable.
        Tu devrais (il me semble) instancier un tableux des saisies.
        L'incrémenter à chaque itération.
        Ensuite fair la moyenne du tableau et l'afficher.
        A+
        1. comment faire un tableau