C语言练习题110例(六)

51.带空格的直角三角形

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。

输入描述:

多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。

输出描述:

针对每行输入,输出用“”组成的对应长度的直角三角形,每个“”后面有一个空格。

输入:

5

输出:

        * 
      * * 
    * * * 
  * * * * 
* * * * *

参考代码:

#include 

int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        int i = 0;
        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j < n-1-i ; j++)
            {
                printf("  ");
            }
            for (j = 0; j <= i; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

52.金字塔图案

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的金字塔图案。

输入描述:

多组输入,一个整数(2~20),表示金字塔边的长度,即“*”的数量,,也表示输出行数。

输出描述:

针对每行输入,输出用“”组成的金字塔,每个“”后面有一个空格。

输入:

4

输出:

   * 
  * * 
 * * * 
* * * *

参考代码:

53.翻转金字塔图案

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转金字塔图案。

输入描述:

多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。

输出描述:

针对每行输入,输出用“”组成的金字塔,每个“”后面有一个空格。

输入:

5

输出:

* * * * * 
 * * * *
  * * * 
   * * 
    *

参考代码:

#include 

int main()
{
    int n = 0;
    while (~scanf("%d", &n))
    {
        int i = 0;
        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j < i; j++)
            {
                printf(" ");
            }

            for (j = 0; j < n-i; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

54.菱形图案

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。

输入描述:

多组输入,一个整数(2~20)。

输出描述:

针对每行输入,输出用“”组成的菱形,每个“”后面有一个空格。

示例1

输入:

2

输出:

  * 
 * * 
* * * 
 * * 
  *

示例2

输入:

4

输出:

    * 
   * * 
  * * * 
 * * * * 
* * * * * 
 * * * * 
  * * * 
   * * 
    *

参考代码:

#include 

int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        int i = 0;
        for (i = 0; i <= n; i++)
        {
            int j = 0;
            for (j = 0; j < n - i; j++)
            {
                printf(" ");
            }
            for (j = 0; j <= i; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j <= i; j++)
            {
                printf(" ");
            }
            for (j = 0; j < n - i; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }    
}

55.K形图案

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的K形图案。

输入描述:

多组输入,一个整数(2~20)。

输出描述:

针对每行输入,输出用“”组成的K形,每个“”后面有一个空格。

示例1

输入:

2

输出:

* * * 
* *  
*   
* *  
* * *

示例2

输入:

3

输出:

* * * * 
* * *  
* *   
*    
* *   
* * *  
* * * *

参考代码:

#include 

int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        int i = 0;
        for (i = 0; i <= n; i++)
        {
            int j = 0;
            for (j = 0; j <= n-i ; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j <= i+1 ; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
}

56.箭形图案

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的箭形图案。

输入描述:

多组输入,一个整数(2~20)。

输出描述:

针对每行输入,输出用“*”组成的箭形。

示例1

输入:

2

输出:

   *
 **
***
 **
   *

示例2

输入:

3

输出:

      *
    **
  ***
****
  ***
    **
      *

参考代码:

#include 

int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        int i = 0;
        for (i = n; i >= 0; i--)
        {
            int j = 0;
            for (j = 0; j < i; j++)
            {
                printf("  ");
            }
            for (j = 0; j <= n-i; j++)
            {
                printf("*");
            }
            printf("\n");
        }

        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j <= i; j++)
            {
                printf("  ");
            }
            for (j = 0; j < n-i; j++)
            {
                printf("*");
            }
            printf("\n");
        }
    }
}

57.反斜线形图案

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的反斜线形图案。

输入描述:

多组输入,一个整数(2~20),表示输出的行数,也表示组成反斜线的“*”的数量。

输出描述:

针对每行输入,输出用“*”组成的反斜线。

示例1

输入:

4

输出:

*   
 *  
  * 
   *

示例2

输入:

5

输出:

*    
 *   
  *  
   * 
    *

参考代码:

#include 

int main()
{
    int n = 0;
    while (~scanf("%d", &n))
    {
        int i = 0;
        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j < n; j++)
            {
                if (i == j)
                {
                    printf("*");
                }
                else
                {
                    printf(" ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

58.正斜线形图案

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正斜线形图

案。

输入描述:

多组输入,一个整数(2~20),表示输出的行数,也表示组成正斜线的“*”的数量。

输出描述:

针对每行输入,输出用“*”组成的正斜线。

示例1

输入:

4

输出:

   *
  * 
 *  
*  

示例2

输入:

5

输出:

    *
   * 
  *  
 *   
*

参考代码:

#include 

int main()
{
    int n = 0;
    while (~scanf("%d", &n))
    {
        int i = 0;
        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j < n; j++)
            {
                if (i + j == n - 1)
                {
                    printf("*");
                }
                else
                {
                    printf(" ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

59.X形图案

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。

输入描述:

多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。

输出描述:

针对每行输入,输出用“*”组成的X形图案。

示例1

输入:

5

输出:

*   *
 * * 
  *  
 * * 
*   *

示例2

输入:

6

输出:

*    *
 *  * 
  **  
  **  
 *  * 
*    *

参考代码:

#include 

int main()
{
    int n = 0;
    while (~scanf("%d", &n))
    {
        int i = 0;
        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j < n; j++)
            {
                if (i + j == n - 1)
                {
                    printf("*");
                }
                else if (i == j)
                {
                    printf("*");
                }
                else
                {
                    printf(" ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

60.空心正方形图案

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。

输入描述:

多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。

输出描述:

针对每行输入,输出用“”组成的“空心”正方形,每个“”后面有一个空格。

示例1

输入:

4

输出:

* * * * 
*     * 
*     * 
* * * *

示例2

输入:

5

输出:

* * * * * 
*       * 
*       * 
*       * 
* * * * *

参考代码:

#include 

int main()
{
    int n = 0;
    while (~scanf("%d", &n))
    {
        int i = 0;
        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j < n; j++)
            {
                if (i == 0 || i == n - 1)
                {
                    printf("* ");
                }
                else if (j == 0 || j == n - 1)
                {
                    printf("* ");
                }
                else
                {
                    printf("  ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

C语言练习题110例【61-70】

你可能感兴趣的:(c语言,算法,数据结构)