IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[Debutant] Transmission de variables.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 52
    Par défaut [Debutant] Transmission de variables.
    Bonjour à tou(te)s!
    Je viens à vous accompagné d'un souci probablement minime pour la majorité d'entre vous; j'ai commencé à programmer en C il n'y que peu de temps et j'ai encore du mal à cerner et acquérir la "logique" de manière générale.
    Internet me facilite cependant grandement la tâche, et sur un des exercices trouvé sur un site que je "pêche":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    void affiche(long tableau[], long tailletableau);
    long sommetableau(long tableau[], long tailletableau);
    int main()
    {
    	long tableau[4] = {15, 25, 35, 45}, i = 0;
    	affiche(tableau, 4);
    	sommetableau(tableau, 4);
    	return 0;
     
    }
     
    void affiche(long *tableau, long tailletableau)
    {
        long i;
        for (i = 0; i < tailletableau; i++)
        {
            printf("%ld\n", tableau[i]);
        }
    }
     
    long sommetableau(long tableau[], long tailletableau)
    {
     
        long i = 0, resultat = 0;
        for (i = 0; i < tailletableau; i++)
        {
            resultat += tableau[i];
     
        }
        return resultat;
        printf("%ld", resultat);
     
    }
    Voilà j'aimerai ajouter les valeurs du tableau les unes aux autres, et afficher cette somme. Après maints essais, je ne m'en sors toujours pas. Les valeurs du tableau s'affichent à la suite, mais pas la somme.
    Je n'attends pas un code tout prêt, mais des indices ou des explications sur ce qui ne va pas dans ce bout de code! Merci à ceux et celles qui prendront le temps de passer par là!.

  2. #2
    Membre expérimenté

    Étudiant
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    Pour commencer il faudrait que tu penses à indenter ton code pour que celui-ci soit plus lisible.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void affiche(long *tableau, long tailletableau)
    {
        long i;
        for (i = 0; i < tailletableau; i++)
        {
            printf("%ld\n", tableau[i]);
        }
    }
    Ensuite tu dis que tu ne t'en sors pas. Il serait bien que tu expliques ce qui ne vas pas. Tu n'obtiens pas le bon résultat, tu as un problème d'affichage, des erreurs de compilation .........

    Puis pour finir j'ai remarqué une erreur dans ta fonction sommetableau. Tu affiches le resultat après avoir fait le return. Hors après le return tu ne te trouves plus dans la fonction et tu ne peux donc pas faire l'affichage. La solution est ou bien de faire l'affichage avant le return ou bien faire l'affichage dans la fonction main.

    Voilà bonne continuation.

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Citation Envoyé par floflo_2006
    Pour commencer il faudrait que tu penses à indenter ton code pour que celui-ci soit plus lisible.
    L'indentation était peut-être correcte à l'origine...mais il a utilisé la mauvaise balise ("QUOTE" au lieu de "CODE").

  4. #4
    Membre expérimenté

    Étudiant
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    ah oui !!!!

    désolé c'est surement pour cela.


  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 52
    Par défaut
    Oups! Désolé pour ces petites erreurs qui ne se reproduiront plus! J'ai expliqué ce qui clochait, les valeurs du tableau s'affichent mais pas la somme.
    Le printf avant le return fonctionne merci pour ces explications, et je crois que j'ai vraiment, vraiment mal compris l'utilité de ce "return" .
    Merci à vous!

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Preez
    Oups! Désolé pour ces petites erreurs qui ne se reproduiront plus! J'ai expliqué ce qui clochait, les valeurs du tableau s'affichent mais pas la somme.
    Le printf avant le return fonctionne merci pour ces explications, et je crois que j'ai vraiment, vraiment mal compris l'utilité de ce "return"
    En fait, tu n'as pas compris ce qu'est une fonction C.

    C'est une séquence d'instructions définie par un identificateur (le nom de la fonction) suivit d'une paire de parenthèses,
    un éventuel type de retour (ou void si la fonction ne retourne rien),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int mafonction()
    void mafonction()
    et d'éventuels paramètres typés et nommés (ou void si il n'y a pas de paramètres).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int mafonction(char *p, int i)
    int mafonction(void)
    void mafonction(double *a, size_t nb_elem)
    void mafonction(void)
    suivit d'une paire d'accolades contenant les instructions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int mafonction(char *p, int i)
    {
       /* ... instructions ... */
    }
    et, si la fonction a un type de retour différent de void, une instruction 'return <valeur du type du retour>'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int mafonction(char *p, int i)
    {
       /* ... instructions ... */
     
      return valeur;
    }
    qui a 2 rôles :
    • interrompre l'exécution de la fonction
    • renvoyer une valeur à l'appelant.

    Cette valeur est récupérable en utilisant l'opérateur d'affectation (=) et une variable du bon type (ou d'un type compatible), en utilisant l'appel suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TYPE var = mafonction(<parametres>);

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Citation Envoyé par floflo_2006
    ah oui !!!!

    désolé c'est surement pour cela.

    Il n'y a pas de mal.

    Citation Envoyé par Preez
    Oups! Désolé pour ces petites erreurs qui ne se reproduiront plus! J'ai expliqué ce qui clochait, les valeurs du tableau s'affichent mais pas la somme.
    Le printf avant le return fonctionne merci pour ces explications, et je crois que j'ai vraiment, vraiment mal compris l'utilité de ce "return" .
    Merci à vous!
    Voir "Définition d'une fonction".

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Bonjour,

    Et si tu l'affichais avant de quitter la fonction ?

    Cordialement,
    DS.

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/04/2005, 11h27
  2. transmission de variables
    Par nicerico dans le forum ASP
    Réponses: 14
    Dernier message: 16/08/2004, 16h20
  3. [debutant] procédure et variables
    Par rohlio dans le forum Langage SQL
    Réponses: 6
    Dernier message: 04/07/2004, 18h33
  4. Réponses: 12
    Dernier message: 23/06/2004, 13h50
  5. Debutant recherche utilisation variable système
    Par agent-zaizai dans le forum C++Builder
    Réponses: 5
    Dernier message: 15/05/2003, 21h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo