Partage
  • Partager sur Facebook
  • Partager sur Twitter

faire une étoile en c

étoile en c

Sujet résolu
    8 octobre 2021 à 16:51:44

    hey tous le monde 

    je me permet de vous demander de l'aide car je suis un peut paumer 

    je m'éxplique pour mon école on est en train d'apprendre le c et honnetement je suis un vrais nul . je cherche qq qui saurais m'expliquer mieux que les accompagnateur ce que je pourrais faire .

    je vous laisse un exemple : 

                  *
                 * *
                *   *
               *     *
              *       *
    ***********       ***********
     *                         *
      *                       *
       *                     *
        *                   *
         *                 *
        *                   *
       *                     *
      *                       *
     *                         *
    ***********       ***********
              *       *
               *     *
                *   *
                 * *
                  *

    je ne dois pas utiliser printf par contre 

    ne me donner pas non plus de code brut , je souhaite juste des conseils . mon école vérifié , et je n'ais pas envis de prendre -42

    -
    Edité par Tutuapps.com 8 octobre 2021 à 21:16:01

    • Partager sur Facebook
    • Partager sur Twitter

    Allez merci 

      8 octobre 2021 à 17:12:08

      Aetherium mcpe a écrit:

      je ne dois pas utiliser printf par contre 

      Utilise puts alors !

      ou bien putchar.

      code :

      #include <stdio.h>
      
      int main(void)
      {
          puts("              *");
          puts("             * *");
          puts("            *   *");
          puts("           *     *");
          puts("          *       *");
          puts("***********       ***********");
          puts(" *                         *");
          puts("  *                       *");
          puts("   *                     *");
          puts("    *                   *");
          puts("     *                 *");
          puts("    *                   *");
          puts("   *                     *");
          puts("  *                       *");
          puts(" *                         *");
          puts("***********       ***********");
          puts("          *       *");
          puts("           *     *");
          puts("            *   *");
          puts("             * *");
          puts("              *");
      
          return 0;
      }

      -
      Edité par rouIoude 8 octobre 2021 à 17:17:21

      • Partager sur Facebook
      • Partager sur Twitter
      ...
        8 octobre 2021 à 19:40:40

        Le truc est de savoir comment calculer le nombre d'espace au début, le premier nombre d'astérisques et le nombr d'espaces jusqu'au milieu
        et comme on l'a dit dans l'autre post, le dessin est simétrique.
        Ça se fait avec des boucles for
        + une pour les espaces de début
        + une pour les astérisques
        + une pour les espaces du milieu (ne pas oublier la symétrie)
        + une pour les astérisques de la fin.
        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

          8 octobre 2021 à 21:03:44

          
              int espace;
              char x =' ';
              for (int i = 0; i &lt; size; ++i) {
                  my_putchar(' ');
              }
              my_putchar('*');
              my_putchar('\n');
              for (int i = 0;  i &lt; size; ++i) {
                  for (int i = 0; i &lt; size--; ++i) {
                      my_putchar(' ');
                  }
                  my_putchar('*');
                  for (int i = 0; i &lt; size + 2; ++i) {
                      my_putchar(' ');
                  }
                  my_putchar('*');
                  my_putchar('\n');
          
          
              }``` 
          j'ais tenter un code comme ca 
          mais je ne sais pas si c'est le meilleur
          
          • Partager sur Facebook
          • Partager sur Twitter

          Allez merci 

            8 octobre 2021 à 21:34:19

            Le tout c'est de découper ton étoile en 5:

            Le haut , ta ligne de *, ton V , re ta ligne de * et re ton haut mais a l'envers, elle ont une logique entre elles sauf la première qui faut my_putchar entièrement

            Cette logique est calculable, par exemple la première * de ton haut est a 3n-1 (n étant ton size).

            Ensuite a toi de calculer les autres variable (je vais pas te mâcher tout ton travail 🙂)

            En revanche perso je galère toujours car je ne sais pas comment implémenter mes espaces entre mes etoiles dans mon haut...

            Bref si je trouve autre chose je te previens

            PS: n'oublie pas que tu as le droit a la fonction write

            RE ps : si t'a besoin d'un croquis passe PV sur discord: Beafowl#0060, mes explications sont pas forcement ultra claire xD

            Bonne nuit

            -
            Edité par Beafowl_ 8 octobre 2021 à 21:35:34

            • Partager sur Facebook
            • Partager sur Twitter
              8 octobre 2021 à 21:36:44

              en gros je compten prendre chaque ligne puis faire un reverse , en gros tous recoder mais a l'envers .

              • Partager sur Facebook
              • Partager sur Twitter

              Allez merci 

                9 octobre 2021 à 1:37:11

                Sais-tu écrire des fonctions?
                Puisque c'est symétrique en hauteur autant qu'en largeur, tu pourrais écrire une fonction qui écrit les quatre zones.
                Tu lui fournit la longueur de chaque zone (pouvant être 0)
                Tu fais le calcul dans le main et la fonction affiche.
                Tu appelles la fonction autant de fois que nécessaire.
                • Partager sur Facebook
                • Partager sur Twitter

                Le Tout est souvent plus grand que la somme de ses parties.

                faire une étoile en c

                × 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