Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1490 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Fonction niveau debutant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Fonction niveau debutant

n°1584861
asie
Posté le 10-07-2007 à 16:28:55  profilanswer
 

Salut à tous j'ai une erreur sur l'appelation de la fonction mais je ne vois pas pourquoi, si vous voulez bien me donner une solution s.v.p.
voici, mon code:

Code :
  1. //3


Merci d'avance.

mood
Publicité
Posté le 10-07-2007 à 16:28:55  profilanswer
 

n°1584864
asie
Posté le 10-07-2007 à 16:33:01  profilanswer
 

desole il y a une erreur, voici mon code:
#include <stdio.h>
#include <conio.h>
 
/* Enoncé: Écrire une fonction qui calcule la moyenne des valeurs contenues dans un *
 * tableau de 5 entiers.                                                           */
 
#define MAX_ELEM 5
float iTab[MAX_ELEM] = {2, 5, 4, 3, 1};
 
/* PROTOTYPE */
 float moy_tab(float iTab[]);
 
void main(void)
{
 /* Declaration des variables locales */
  float fResMoy;
 
 /* Appelle de la fonction */
  fResMoy = moy_tab(iTab[]);
 
  printf("La moyanne des valeurs du tableau = %f", fResMoy);
}
 
float moy_tab(float iTab[])
{
 /* declaration des variables */
 int iI;
 float fMoyenne;
 
 fMoyenne = iTab[0];
 for (iI=1; iI<MAX_ELEM; iI++)
    {
     fMoyenne = iTab[iI] + fMoyenne;
    }
 
 return fMoyenne / MAX_ELEM;
}

n°1584868
_darkalt3_
Proctopathe
Posté le 10-07-2007 à 16:35:56  profilanswer
 

Le bon reflexe à avoir est de debugger toi même le programme;
- tu mets un point d'arrêt avant que ca ne plante.
- tu déroules le programme jusqu'à ce que ça foire
- tu observes les valeurs des variables en jeu à ce moment du déroulement
- tu déduis naturellement la cause du bug.


---------------
Töp of the plöp
n°1584873
asie
Posté le 10-07-2007 à 16:46:11  profilanswer
 

oui c'est ce que j'ai fais de puis tout à l'heure mais je n'arrive toujours pas resoudre le problemme.

n°1584882
_darkalt3_
Proctopathe
Posté le 10-07-2007 à 17:01:27  profilanswer
 

ca plante à quelle ligne ?
quel est le message d'erreur ?


Message édité par _darkalt3_ le 10-07-2007 à 17:01:44

---------------
Töp of the plöp
n°1584890
Trap D
Posté le 10-07-2007 à 17:15:00  profilanswer
 

L'erreur est ici : fResMoy = moy_tab(iTab[]);  
Ecris fResMoy = moy_tab(iTab);  
 

n°1584892
dap++
Script kiddie
Posté le 10-07-2007 à 17:17:48  profilanswer
 

Tu devrais mettre ton code entre balises cpp pour que ce soit plus lisible. Si tu déclares ton tableau en dehors des fonctions tu n'as pas besoin de le passer en paramètre, toutes les fonctions y ont accès.

n°1584894
asie
Posté le 10-07-2007 à 17:19:15  profilanswer
 

oui, exactement.
et message d'erreur est "error expression syntax"

n°1584895
Trap D
Posté le 10-07-2007 à 17:21:00  profilanswer
 

Pour ce qui est de la correction du code, il y a effectivement beaucoup à dire (protoype de main, usage de variables globales).

n°1584912
asie
Posté le 10-07-2007 à 17:45:26  profilanswer
 

Merci beaucoup Trap D

mood
Publicité
Posté le 10-07-2007 à 17:45:26  profilanswer
 

n°1584914
asie
Posté le 10-07-2007 à 17:46:13  profilanswer
 

Mais, pourquoi il ne faut pas mettre entre crochet?

n°1584934
Trap D
Posté le 10-07-2007 à 18:18:43  profilanswer
 

Parceque, à l'exécution du code, la fonction attend l'adresse d'un tableau de float et les "[]" sont utilisés pour les déclarations de type de paramètres dans les déclarations de fonctions.

n°1584976
asie
Posté le 10-07-2007 à 21:03:34  profilanswer
 

Ah d'accord, encore merci Trap D.

n°1584993
_darkalt3_
Proctopathe
Posté le 10-07-2007 à 22:03:14  profilanswer
 

asie a écrit :

Ah d'accord, encore merci Trap D.


un site qui te sera bien utile:
http://mapage.noos.fr/emdel/


---------------
Töp of the plöp
n°1586473
Emmanuel D​elahaye
C is a sharp tool
Posté le 14-07-2007 à 00:35:00  profilanswer
 

asie a écrit :

voici mon code:

Code :
  1. /* Appelle de la fonction */
  2.   fResMoy = moy_tab(iTab[]);



C'est quoi ces [] ? Tu sors ça d'où ?  
 
Ceci compile et se comporte d'une manière plus souple...

Code :
  1. #include <stdio.h>
  2. /* Enoncé: Écrire une fonction qui calcule la moyenne des valeurs contenues dans un *
  3. * tableau de 5 entiers.                                                           */
  4. double moy_tab (double iTab[], int nb)
  5. {
  6.    /* declaration des variables */
  7.    int iI;
  8.    double fMoyenne;
  9.    fMoyenne = iTab[0];
  10.    for (iI = 1; iI < nb; iI++)
  11.    {
  12.       fMoyenne = iTab[iI] + fMoyenne;
  13.    }
  14.    return fMoyenne / nb;
  15. }
  16. int main (void)
  17. {
  18.    double iTab[5] = { 2, 5, 4, 3, 1 };
  19.    double fResMoy = moy_tab (iTab, 5);
  20.    printf ("La moyanne des valeurs du tableau = %f", fResMoy);
  21.    return 0;
  22. }


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Fonction niveau debutant

 

Sujets relatifs
quelques question sur le Qbasic (debutant)Compatibilité version PHP/mySQL - débutant
Débutant : Polymorphisme[Excel] extraire une valeur d'un tableau en fonction de 2 index
Question de débutant sur flash[resolu]fonction qui modifie els paramètrs d'entrée
Frames et fonction setTimeoutTypage strict pour parametres de fonction : question sur cas précis
Adapter mon image de fond en fonction de la résolution de l'écranFonction js avec paramètre PHP
Plus de sujets relatifs à : [C] Fonction niveau debutant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR