Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C พิมพ์ชื่อภายในลายหัวใจโดยใช้ for loop


ปัญหา

เขียนโปรแกรมพิมพ์รูปหัวใจโดยให้ชื่ออยู่ตรงกลางโดยใช้ for loop

วิธีแก้ปัญหา

ผู้ใช้ต้องป้อนชื่อที่ควรพิมพ์ตรงกลางพร้อมกับจำนวนแถวที่จะพิมพ์ดาว

อัลกอริทึม

อ้างอิงอัลกอริธึมที่ให้ไว้ด้านล่างเพื่อพิมพ์ชื่อในรูปแบบหัวใจโดยใช้ for loop

ขั้นตอนที่ 1 - ประกาศตัวแปร

ขั้นตอนที่ 2 - อ่านชื่อที่รันไทม์ซึ่งควรพิมพ์ไว้ตรงกลาง

ขั้นตอนที่ 3 - อ่านจำนวนแถว

ขั้นตอนที่ 4 - ค้นหาความยาวของชื่อ

ขั้นตอนที่ 5 - พิมพ์ส่วนบนของหัวใจ

ขั้นตอนที่ 6 - พิมพ์ส่วนล่างของหัวใจ

ขั้นตอนที่ 7 - พิมพ์ชื่อบนหน้าจอ

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C เพื่อพิมพ์ชื่อในรูปแบบหัวใจโดยใช้ for loop −

#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("\n");
   }
   // 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("\n");
   }
   return 0;
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -

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