Aide langage c

Résolu/Fermé
bahaloh Messages postés 25 Date d'inscription vendredi 16 avril 2010 Statut Membre Dernière intervention 6 janvier 2012 - 23 avril 2010 à 14:42
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 23 avril 2010 à 22:20
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();
}
A voir également:
  • 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.
  • Langage ascii - Guide
  • Langage binaire - Guide
  • Pascal langage - Télécharger - Édition & Programmation
  • Langage pascal - Télécharger - Édition & Programmation
  • Débuter langage batch windows - Guide

5 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
23 avril 2010 à 15:16
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
bahaloh Messages postés 25 Date d'inscription vendredi 16 avril 2010 Statut Membre Dernière intervention 6 janvier 2012 1
23 avril 2010 à 15:19
tu peux recrit le programe s'il vous plais fiddy
please
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
23 avril 2010 à 22:03
Bonjour,
T'apprendras bien plus si tu fais le programme par toi-même.
Parcontre, n'hésite pas à poser des questions.
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
23 avril 2010 à 19:06
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
Modifié par fiddy le 23/04/2010 à 22:32
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
23 avril 2010 à 17:54
Non il n'y a pas besoin de tableaux pour cet exercice. Juste trois variables.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
Modifié par fiddy le 23/04/2010 à 22:20
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
23 avril 2010 à 15:11
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
bahaloh Messages postés 25 Date d'inscription vendredi 16 avril 2010 Statut Membre Dernière intervention 6 janvier 2012 1
23 avril 2010 à 15:13
comment faire un tableau
0