C实现一个棱形图案

#include <stdio.h>

//输出一个棱形
int main()
{
    for (int m = 0; m < 5; m++)
    {
        for (int n = 0; n < 9; n++)
        {
            //在草稿纸画一个5行9列 用矩形占位 该是菱形的地方用三角形占位
            //发现第一行 第五个位置是三角形
            //    第二行 第4 第六位置
            //    第三行 第3 第七位置
            //    第四行 第2 第八位置
            //    第五行 第1 第九位置
            //发现规律为 5加减(行数-1)
            //将规律用c实现
            //此题我借鉴了《像程序员一样思考》给出的解决问题建议
            int i = 5 + m - 1;
            int j = 5 - m - 1;
            if (n == i || n == j)
            {
                printf("@");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
    //菱形的下半部分用同样的方式实现
    for (int m = 0; m < 4; m++)
    {
        for (int n = 0; n < 9; n++)
        {
            int i = 2 + m - 1;
            int j = 8 - m - 1;
            if (n == i || n == j)
            {
                printf("@");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
    system("pause");
    return 0;
}

 

posted @ 2020-02-11 19:43  littlelittleprince  阅读(190)  评论(0编辑  收藏  举报