RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 calcule de moyen

Forum : C
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ C

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2] [3]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
rainbow
Membre du club
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 929
Message
#143930
Posté le 10/10/07 à 19:43
autant pour moi, je me suis planté avec ce stupide scanf ... il fallait mettre %s

voici le code ok :

#include<stdio.h> #include<stdlib.h> /*constante */ #define taillemax1 10 #define taillemax2 10 #define taillemax3 10 int main (void) { /*variable */ int nbnote, i, j, numeroeleve ,indiceaffichage; float notetableau[taillemax1][taillemax2]; float moyentableau[taillemax3]; double moyenne; double indicearrete; char stop ; /* ----debut du programme---- */ /* initialise i et j */ i = 0; j = 0; do { /* ----saisi note ----*/ nbnote=0 ; i = 0; do { printf ("saisir une note \n"); scanf ("%f", &notetableau[i][j]); indicearrete = notetableau[i][j] ; i = i + 1; nbnote=nbnote+1 ; } while(indicearrete!=-1); indicearrete=0 ; /* Calcule Moyen */ moyenne = 0; for (i = 0; i < nbnote; i = i + 1) { moyenne = moyenne + notetableau[i][j]; } nbnote=nbnote-1; moyenne=moyenne+1 ; moyentableau[j] = moyenne / nbnote; j = j + 1; printf ("arrete oui='o' non='n' \nreponse :"); scanf ("%s", &stop); /* on initialise i pour la boucle */ i=0; } while (stop != 'o' ); printf (" \n \n "); /* -----affichage moyen ----*/ /* initialisation */ indiceaffichage=j; numeroeleve=0 ; j=0 ; while (indiceaffichage != numeroeleve) { printf ("-eleve %d m :%f \n", j, moyentableau[j]); numeroeleve = numeroeleve + 1; j=j+1 ; } /* ----fin du programme---- */ system ("pause"); return (0); }

__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

nowix
Nouveau membre
Inscrit : 02/10/2007
Messages : 14
Message
#143931
Posté le 10/10/07 à 19:47
tu a verifier tout le code ou juste le %c vers un %s.juste pour savoir s sil y avais d autre erreur , car il marche maintenant XD merci beaucoups

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

rainbow
Membre du club
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 929
Message
#143932
Posté le 10/10/07 à 20:03
je l'ai testé pour voir où était l'erreur que tu disais mais je n'ai pas cherché si il y avait des problèmes dans le calcul. cependant il y a des améliorations possibles au niveau syntaxique.
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Agahaz
Superviseur :
- Réseaux
Modérateur :
- XP / 2000 / .
- Xhtml/Css
- Visual basic
Avatar de Agahaz
Inscrit : 23/06/2005
Messages : 763
Message
#143938
Posté le 10/10/07 à 22:07
Tu as plusieurs problèmes de calculs...

pourquoi moyenne=moyenne +1 ? C'est surprenant dans un calcul de moyenne.

En fait le vrai problème c'est la place de nbnote=nbnote-1. Il faut le mettre avant ta boucle for où tu calcule moyenne. La 2e solution (plus élégante) c'est d'initialiser nbnote=-1 au début. Et de l'incrémenter au tout début de ta boucle while de saisi de notes. Ce qui te supprime le nbnote=nbnote-1

D'ailleurs dans la boucle while de saisi de notes, i et nbnote ont le même rôle. Tu peux supprimer i de cette boucle.


#include<stdio.h> #include<stdlib.h> /*constante */ #define taillemax1 10 #define taillemax2 10 #define taillemax3 10 int main (void) { /*variable */ int nbnote, i, j, numeroeleve ,indiceaffichage; float notetableau[taillemax1][taillemax2]; float moyentableau[taillemax3]; float moyenne; float indicearrete; char stop ; /* ----debut du programme---- */ /* initialise i et j */ i = 0; j = 0; do { /* ----saisi note ----*/ nbnote=-1 ; do { nbnote=nbnote+1 ; printf ("saisir une note \n"); scanf ("%f", &notetableau[nbnote][j]); indicearrete = notetableau[nbnote][j] ; } while(indicearrete!=-1); indicearrete=0.0 ; /* Calcule Moyen */ moyenne = 0.0; for (i = 0; i < nbnote; i = i + 1) { moyenne = moyenne + notetableau[i][j]; } //moyenne=moyenne+1 ; printf("moy: %f\n", moyenne); moyentableau[j] = moyenne / nbnote; j = j + 1; printf ("arrete oui='o' non='n' \nreponse :"); scanf ("%s", &stop); /* on initialise i pour la boucle */ } while (stop != 'o' ); printf (" \n \n "); /* -----affichage moyen ----*/ /* initialisation */ indiceaffichage=j; numeroeleve=0 ; j=0 ; do { printf ("-eleve %d m :%f \n", j, moyentableau[j]); numeroeleve = numeroeleve + 1; j=j+1 ; } while (indiceaffichage != numeroeleve) ; /* ----fin du programme---- */ system ("pause"); return (0); }

__________________________
FAQ Réseau
N'oubliez pas le tag [Résolu]Image (en haut à droite du titre du sujet)
Site perso sur les éoliennes et la programmation
Radio métal

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C



    PAGES : [1] [2] [3]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.