Maison  >  Article  >  développement back-end  >  Programme C pour imprimer des motifs de pyramides creuses et de losanges

Programme C pour imprimer des motifs de pyramides creuses et de losanges

PHPz
PHPzavant
2023-09-02 11:25:061386parcourir

Programme C pour imprimer des motifs de pyramides creuses et de losanges

Ici, nous verrons comment générer des motifs de pyramides creuses et de losanges en utilisant le langage C. Nous pouvons facilement générer un modèle pyramidal solide. Pour le rendre creux, il faut ajouter quelques astuces.

Pyramide creuse

Pour la pyramide de la première rangée, il imprimera un astérisque et n astérisques dans la dernière rangée. Pour les autres lignes, deux astérisques seront imprimés au début et à la fin de la ligne, avec un espace entre les deux astérisques.

Exemple de code

#include <stdio.h>
int main() {
   int n, i, j;
   printf("Enter number of lines: ");
   scanf("%d", &n);
   for(i = 1; i<=n; i++) {
      for(j = 1; j<=(n-i); j++){ //print the blank spaces before star
         printf(" ");
      }
      if(i == 1 || i == n){ //for the first and last line, print the
         stars continuously
         for(j = 1; j<=i; j++) {
            printf("* ");
         }
      } else {
         printf("*"); //in each line star at start and end
         position
         for(j = 1; j<=2*i-3; j++) { //print space to make hollow
            printf(" ");
         }
         printf("*");
      }
      printf("</p><p>");
   }
}

Sortie

Enter number of lines: 20
                                         *
                                       *   *
                                      *     *
                                     *       *
                                    *         *
                                   *           *
                                  *             *
                                 *               *
                                *                 *
                               *                   *
                              *                     *
                             *                       *
                            *                         *
                           *                           *
                          *                             *
                         *                               *
                        *                                 *
                       *                                   *
                      *                                     *
                     * * * * * * * * * * * * * * * *  * * *  * 

Rhombe creux

Pour la première et la dernière rangée de losanges, il imprimera une étoile. Pour les autres lignes, deux étoiles seront imprimées au début et à la fin de la ligne et il y aura un espace entre les deux débuts. Un diamant est composé de deux parties. Moitiés supérieure et inférieure. Dans la partie supérieure, nous devons augmenter le nombre d'espaces et dans la partie inférieure, nous devons diminuer le nombre d'espaces. Ici, vous pouvez utiliser une autre variable appelée mid pour diviser le numéro de ligne en deux parties.

Exemple de code

#include <stdio.h>
int main() {
   int n, i, j, mid;
   printf("Enter number of lines: ");
   scanf("%d", &n);
   if(n %2 == 1) { //when n is odd, increase it by 1 to make it even
      n++;
}
mid = (n/2);
for(i = 1; i<= mid; i++) {
    for(j = 1; j<=(mid-i); j++){ //print the blank spaces before star
      printf(" ");
    }
    if(i == 1) {
      printf("*");
    } else {
      printf("*"); //in each line star at start and end
      position
      for(j = 1; j<=2*i-3; j++){ //print space to make hollow
          printf(" ");
      }
      printf("*");
    }
    printf("</p><p>");
}
for(i = mid+1; i<n; i++) {
   for(j = 1; j<=i-mid; j++) { //print the blank spaces before star
      printf(" ");
   }
   if(i == n-1) {
      printf("*");
   } else {
      printf("*"); //in each line star at start and end
      position
      for(j = 1; j<=2*(n - i)-3; j++) { //print space to make
        hollow
        printf(" ");
      }
      printf("*");
   }
   printf("</p><p>");
}

Sortie

Enter number of lines: 15
                      *
                    *   *
                  *       *
                 *         *
                *           *
               *             *
              *               *
             *                 *
              *               *
               *             *
                *           *
                 *         *
                   *     *
                    *   *
                      *

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer