C Pyramid – Part I

ย้อนกลับไปสมัยที่ผมทำงานที่แรก ซึ่งเขียน Windows Application ด้วยภาษา C# หัวหน้าได้ให้โจทย์ C Pyramid มาเพื่อฝึกพื้นฐานการเขียนโปรแกรม โดยจะแบ่งเป็น 2 ส่วน ส่วนแรกจะเป็นแบบง่ายที่จะแสดงผลลัพธ์ออกมาด้วย Asterisk ( * ) ซึ่งจะมี ASCII Code เป็น 42


1. Half Pyramid Left

  • Result
        *
      * *
    * * *
  * * * *
* * * * *
  • Code
main()
{      
     int r,c; 
     for(r=5; r>=1; r--)
     {
          for(c=1; c<r; c++)
          {
               printf(" ");
          }
          for(c=5; c>=r; c--)
          {
               printf("*");
          }
          printf("\n");
     }
     getch();
}

2. Half Pyramid Right

  • Result
*
* *
* * *
* * * *
* * * * *
  • Code
main()
{
    int r, c;
    for (r = 1; r <= 5; r++)
    {
        for (c = 1; c <= r; c++)
        {
            printf("*");
        }
        printf("\n");
    }
    getch();
}

3. Reverse Half Pyramid Left

  • Result
* * * * *
  * * * *
    * * *
      * *
        *
  • Code
main()
{
    int r, c;
    for (r = 1; r <= 5; r++)
    {
        for (c = 1; c < r; c++)
        {
            printf(" ");
        }
        for (c = 5; c >= r; c--)
        {
            printf("*");
        }
        printf("\n");
    }
    getch();
}

4. Reverse Half Pyramid Right

  • Result
* * * * *
* * * *
* * *
* *
*
  • Code
main()
{
    int r, c;
    for (r = 1; r <= 5; r++)
    {
        for (c = 5; c >= r; c--)
        {
            printf("*");
        }
        printf("\n");
    }
    getch();
}

5. Full Pyramid

  • Result
        *
      * * *
    * * * * *
  * * * * * * *
* * * * * * * * *
  • Code
main()
{      
    int r,c,cen=5; 
    for(r=1; r<=5; r++)
    {
        for(c=1; c<=9; c++)
        {   
            if( (c >= (cen - (r - 1))) && (c <= (cen + (r - 1))) )
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
    getch();
}

6. Reverse Full Pyramid

  • Result
* * * * * * * * *
  * * * * * * *
    * * * * *
      * * *
        *
  • Code
main()
{      
    int r,c,cen=5; 
    for(r=5; r>=1; r--)
    {
        for(c=1; c<=9; c++)
        {   
            if( (c >= (cen - (r - 1))) && (c <= (cen + (r - 1))) )
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
    getch();
}

Leave a Reply

Your email address will not be published. Required fields are marked *