Aide langage c

Résolu
bahaloh Messages postés 32 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
    1. bahaloh Messages postés 32 Statut Membre 1
       
      tu peux recrit le programe s'il vous plais fiddy
      please
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Bonjour,
      T'apprendras bien plus si tu fais le programme par toi-même.
      Parcontre, n'hésite pas à poser des questions.
      0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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. ;-))).
      0
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Non il n'y a pas besoin de tableaux pour cet exercice. Juste trois variables.
    0
  4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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+
    -2
    1. bahaloh Messages postés 32 Statut Membre 1
       
      comment faire un tableau
      0