Maison  >  Article  >  développement back-end  >  Programme C pour imprimer les noms sous forme de cœur en utilisant la boucle for

Programme C pour imprimer les noms sous forme de cœur en utilisant la boucle for

王林
王林avant
2023-09-06 22:09:141300parcourir

Programme C pour imprimer les noms sous forme de cœur en utilisant la boucle for

Question

Écrivez un programme qui utilise une boucle for pour imprimer un motif en forme de cœur avec un nom au centre.

Solution

L'utilisateur doit saisir le nom qui doit être imprimé au centre et le nombre de lignes sur lesquelles l'étoile doit être imprimée.

Algorithme

Voir l'algorithme ci-dessous pour imprimer les noms en motif de cœur en utilisant la boucle for.

Étape 1 - Déclarez les variables.

Étape 2 - Lors de l'exécution, lisez le nom qui doit être imprimé au centre.

Étape 3 - Lisez le nombre de lignes.

Étape 4 - Calculez la longueur du nom.

Étape 5 - Imprimez la moitié supérieure de la forme du cœur.

Étape 6 - Imprimez la moitié inférieure

Étape 7 - Imprimez le nom sur l'écran.

Exemple

Ce qui suit est une boucle de programme C qui utilise pour pour imprimer les noms dans un motif en cœur -

Démonstration en direct

#include <stdio.h>
#include <string.h>
int main(){
   int i, j, n;
   char name[50];
   int len;
   printf("Enter your name: ");
   gets(name);
   printf("Enter no of rows: ");
   scanf("%d", &n);
   len = strlen(name);
   // Print upper part of the heart shape with stars
   for(i=n/2; i<=n; i+=2){
      for(j=1; j<n-i; j+=2){
         printf(" ");
      }
      for(j=1; j<=i; j++){
         printf("*");
      }
      for(j=1; j<=n-i; j++){
         printf(" ");
      }
      for(j=1; j<=i; j++){
         printf("*");
      }
      printf("</p><p>");
   }
   // Prints lower triangular part with stars
   for(i=n; i>=1; i--){
      for(j=i; j<n; j++){
         printf(" ");
      }
      // Print the name on screen
      if(i == n){
         for(j=1; j<=(n * 2-len)/2; j++){
            printf("*");
         }
         printf("%s", name);
         for(j=1; j<(n*2-len)/2; j++){
            printf("*");
         }
      }else{
         for(j=1; j<=(i*2)-1; j++){
            printf("*");
         }
      }
      printf("</p><p>");
   }
   return 0;
}

Sortie

Lorsque le programme ci-dessus est exécuté, la sortie suivante est produite -

Enter your name: Tutorials POint
Enter no of rows: 10
      ***** *****
    ******* *******
  ********* *********
   **Tutorials POint*
   *****************
    ***************
     *************
      ***********
       *********
        *******
         *****
          ***
           *

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