Loading

BC2-小飞机

题目描述

KiKi 学会了 printf 在屏幕输出信息,他想输出一架小飞机。请帮他编写程序输出这架小飞机。

输入描述

输出描述

解题思路

方案一

将小飞机的图形按照行进行划分,总共可以分成 6行。然后依照每行空格与 * 的排布位置输出相应的字符即可。

具体代码如下:

#include <stdio.h>

int main()
{
    printf("     **\n");        /* 依照图形,逐行进行输出 */
    printf("     **\n");
    printf("************\n");
    printf("************\n");
    printf("    *  *\n");
    printf("    *  *\n");

    return 0;
}

方案二

也可以将 6 条 printf 中的语句整合为一条。

具体代码如下:

#include <stdio.h>

int main()
{
	printf("     **\n     **\n************\n************\n    *  *\n    *  *\n");

	return 0;
}

方案三

方案一和方案二的代码简单直观,当然像这种输出图形的题目,我们也可以通过循环语句进行实现。

具体代码如下:

#include <stdio.h>

int main()
{
    int x = 0, y = 0;

    for (x = 0; x < 2; x++)     /* 控制输出 x 行 */
    {
        for (y = 0; y < 7; y++)     /* 控制输出 x 行的 y 列 */
        {
            if (y < 5)      /* 控制输出 y 列中的' ' */
            {
                putchar(' ');
            }
            else        /* 控制输出 y 列中的'*' */
            {
                putchar('*');
            }
        }

        putchar('\n');      /* 回车换行 */
    }

    for (x = 0; x < 2; x++)     /* 3、4 行 */
    {
        for (y = 0; y < 12; y++)
        {
            putchar('*');
        }

        putchar('\n');
    }

    for (x = 0; x < 2; x++)     /* 5、6 行 */
    {
        for (y = 0; y < 8; y++)
        {
            if ((y < 4) || (y == 5) || (y == 6))
            {
                putchar(' ');
            }
            else
            {
                putchar('*');
            }
        }

        putchar('\n');
    }

	return 0;
}

如果你要问 forif 中的判断条件是怎么得到的,问就是我一个个数出来的,哈哈,寻找规律嘛。

posted @ 2023-01-16 10:58  main工作室  阅读(141)  评论(0编辑  收藏  举报