fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main() {
  5. int a, b, size = 15;
  6. char text[] = "Juthaporn";
  7. int textLength = strlen(text);
  8. int textRow = size / 2 + 1; // กำหนดให้ข้อความอยู่ตรงกลางส่วนหัวใหญ่
  9.  
  10. // วาดส่วนบนของหัวใจ
  11. for (a = size / 2; a <= size; a += 2) {
  12. for (b = 1; b < size - a; b += 2)
  13. printf(" ");
  14. if (a == textRow) {
  15. // ใส่ข้อความ "Juthaporn" ตรงกลางส่วนหัว
  16. for (b = 1; b <= a; b++) {
  17. if (b <= (a - textLength) / 2 || b > (a - textLength) / 2 + textLength)
  18. printf(b == 1 || b == a ? "B" : " ");
  19. else
  20. printf("%c", text[b - (a - textLength) / 2 - 1]);
  21. }
  22. for (b = 1; b <= size - a; b++)
  23. printf(" ");
  24. for (b = 1; b <= a; b++)
  25. printf(b == 1 || b == a ? "B" : " ");
  26. } else {
  27. // วาดขอบหัวใจปกติ
  28. for (b = 1; b <= a; b++)
  29. printf(b == 1 || b == a ? "B" : " ");
  30. for (b = 1; b <= size - a; b++)
  31. printf(" ");
  32. for (b = 1; b <= a; b++)
  33. printf(b == 1 || b == a ? "B" : " ");
  34. }
  35. printf("\n");
  36. }
  37.  
  38. // วาดส่วนล่างของหัวใจ
  39. for (a = size; a >= 0; a--) {
  40. for (b = a; b < size; b++)
  41. printf(" ");
  42. for (b = 1; b <= (a * 2) - 1; b++)
  43. printf(b == 1 || b == (a * 2) - 1 ? "B" : " ");
  44. printf("\n");
  45. }
  46.  
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0.01s 5276KB
stdin
Standard input is empty
stdout
    B     B        B     B
   B       B      B       B
  B         B    B         B
 B           B  B           B
B             BB             B
B                           B
 B                         B
  B                       B
   B                     B
    B                   B
     B                 B
      B               B
       B             B
        B           B
         B         B
          B       B
           B     B
            B   B
             B B
              B