Partage
  • Partager sur Facebook
  • Partager sur Twitter

fonction void

fonction void

Sujet résolu
    28 janvier 2006 à 18:16:34

    salut,
    je veux afficher un nombre de ligne contenant chacun la phrase suivante
    "je ne dois pas tricher plus jamais"
    ceci s'affiche lorsque l'utilisateur tape le nombre de fois,
    j'ai fait les codes dessous qui me semble logique mais je n'arrive pas à distinguer l'erreur
    aidez moi SVP
    zerotamsa


    les codes sont les suivants :
    #include <stdio.h>
    #include <stdlib.h>
    void punition(long nombre_de_ligne)
    {
    return je ne dois pas tricher plus jamais;
    }

    int main(int argc, char *argv[])
    {
    long nombre_entree = 0, n=1;
    printf("entrer le nombre de punition SVP");
    scan("%ld",&nombre_entree);
    while (n < nombre_entree)
    {
    printf("%ld\n",punition(n);
    n = n++
    }



    system("PAUSE");
    return 0;
    }
    <taille valeur="petit"></taille>
    • Partager sur Facebook
    • Partager sur Twitter
      28 janvier 2006 à 18:33:31

      Bon, j'devrais pas répondre parc'que t'as pas respecté les règles, alors bon, vais quand même le faire, pour une fois que j'peux :p
      Ton problème (qu'est peut-être pas le seul), c'est le type de ta fonction : tu utilises une fonction de type "void"...et pourtant tu retournes quelque chose! o_O
      De plus, je crois que "return je ne dois pas tricher plus jamais" n'est pas correct...on retourne un nombre, pas des lettres (du moins, pas à notre niveau...)
      Ton code est mal construit en fait. Ce que je ferais à ta place (tiens, vais même aller le faire^^), c'est d'utiliser une boucle (perso j'utilise while) dans ta fonction, et dans cette boucle, de mettre :
      printf ("Je ne dois pas tricher, je ne le ferai plus jamais");

      • Partager sur Facebook
      • Partager sur Twitter
        28 janvier 2006 à 18:39:17

        Pourquoi ne pas retourner des lettres ?
        Le mieux, c'est qu'il retourne un chiffre, et que en fonction du chiffre retourné, tu écrives ce qu'il faut.
        • Partager sur Facebook
        • Partager sur Twitter
          28 janvier 2006 à 18:42:03

          Ca nécessite des connaissances que l'on n'a pas ça, non? (j'en suis au cours de m@teo, et tamsamani en est visiblement moins loin puisqu'il n'a aparemment pas vu les prototypes).
          Ou sinon (probable^^), je comprends pas réellement ce que tu veux dire^^.
          • Partager sur Facebook
          • Partager sur Twitter
            28 janvier 2006 à 18:55:23

            Si j'ai bien compris: un module qui fait entrer la ligne à copier n fois, et n.

            les cours de M@theo ont largement dépassé ce niveau.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              28 janvier 2006 à 18:58:04

              Bon à part que la fonction, comme l'argument qu'elle prenbd sert à rien, on peut normalement écrire (scusez moi j'ai pas tester, pas tapper si ça marche pas...) :
              #include <stdio.h>

              char *
              afficher_salut ()
              {
                return "Salut !!!\n";
              }

              int
              main (void)
              {
                printf ("%s", afficher_salut ());
                return 0;
              }

              ps : "je ne dois pas tricher plus jamais" en Français ça veut rien dire.
              • Partager sur Facebook
              • Partager sur Twitter
                28 janvier 2006 à 18:58:44

                Oui, les cours ont largement dépassé l'idée du créateur du topic, mais ce que je ne comprends pas c'est ça :

                Citation : Insomniak

                Pourquoi ne pas retourner des lettres ?


                Qu'entends-tu par "retourner une lettre"?!
                Suis-je bête à ce point? :lol:
                • Partager sur Facebook
                • Partager sur Twitter
                  28 janvier 2006 à 19:32:24

                  salut,
                  pour les fonctions à une ou plusieurs variable pas de problème, mais le problème pour cette fonction bizarre "void" comme débutant je ne peux pas avaler ça comme ça , si cette bonction ne renvoie rien , la phrase qui de répéte dans cette exercice c'est quoi, devons nous apprendre par définition fonction void , on évite toujours de mettre return, moi je ne veux pas étre borné uniquement par les meme étapes de ceux de mateo que j'apprécie, en conclusion utilisons retour pour la fonction void ou non?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 janvier 2006 à 19:39:54

                    #include <stdio.h>
                    #include <stdlib.h>

                    void punition (long nombreDeLignes);


                    int main(int argc, char *argv[])
                    {
                      long nombreDeLignes = 0;
                     
                      printf ("Entrez le nombre de lignes que vous voulez ecrire\n");
                      scanf ("%ld", &nombreDeLignes);
                     
                      punition (nombreDeLignes);
                     
                      system("PAUSE");     
                      return 0;
                    }


                    void punition(long nombreDeLignes)
                    { 
                         long compteur = 0;
                         
                      while (compteur < nombreDeLignes)
                    { 
                           printf ("Je ne tricherai plus jamais, promis jure crache sur la tete de ma grand-mere qui est morte!\n");
                           compteur++;
                    }       
                    }



                    Voilà ce que tu cherchais à faire. Tu vois bien que ma fonction punition ne renvoie aucune valeur, elle se contente d'écrire les lignes. (tu remarqueras au passage que j'ai changé la phrase car comme l'a dit louisclem c'était pas français du tout. :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      28 janvier 2006 à 20:04:54

                      Dernier avertissement : Lis les règles et édite ton post pour être en règle.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      fonction void

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown