画8

本文介绍了一种使用字符绘制不同高度8字图案的算法。该算法通过输入字符和整数来确定图案的高度,并根据高度调整图案的宽度,使得图案在视觉上呈现为标准的8字形状。文章提供了一个具体的C++实现示例,帮助读者理解和实践。
摘要由CSDN通过智能技术生成

谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发.

Input

输入的第一行为一个整数N,表示后面有N组数据.
每组数据中有一个字符和一个整数,字符表示画笔,整数(>=5)表示高度.

Output

画横线总是一个字符粗,竖线随着总高度每增长6而增加1个字符宽.当总高度从5增加到6时,其竖线宽度从1增长到2.下圈高度不小于上圈高度,但应尽量接近上圈高度,且下圈的内径呈正方形.
每画一个"8"应空一行,但最前和最后都无空行.

Sample Input

2
A 7
B 8

Sample Output

  AA
AA  AA
AA  AA
  AA
AA  AA
AA  AA
  AA

  BBB
BB   BB
BB   BB
  BBB
BB   BB
BB   BB
BB   BB
  BBB

这是一道很好的画图题,你把他分成两部分来画,输入奇数的时候上下对称,偶数时候下面比上面多一行,你控制好这个一点一点思考就能画出来,希望大家越来越发。

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
    int n;
    scanf("%d",&n);
    getchar();
    while(n--)
    {
        int m;
        char a;
        scanf("%c%d",&a,&m);
        getchar();
        int s=m/6+1;
        int h=(m-2)/2;
        for(int i=1; i<=m; i++)
        {
            if(i==1||i==(m+1)/2||i==m)
            {
                for(int j=1; j<=s; j++)
                {
                    printf(" ");
                }
                for(int k=1; k<=h; k++)
                {
                    printf("%c",a);
                }
                printf("\n");
            }
            else
            {
                for(int j=1; j<=s; j++)
                {
                    printf("%c",a);
                }
                for(int k=1; k<=h; k++)
                {
                    printf(" ");
                }
                for(int l=1; l<=s; l++)
                {
                    printf("%c",a);
                }
                printf("\n");
            }
        }
        if(n>0)
        {
            printf("\n");
        }
    }
    return 0;
}
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值