C语言,打印图形

目录

一,空心正方形

输入

输出

二,空心六边形

输入

输出

三,打印房子图形

输入

样例输入

样例输出


一,空心正方形

 请输出大小为n的空心正方形


输入

输入第一行一个整数T,代表接下来有T组测试数据。
接下来T行,每行有一个整数n.
数据范围:1≤T≤100,1≤n≤103.

输出

输出大小为n的空心正方形


#include<stdio.h>
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n,i,j;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                if(i==1||i==n||j==1||j==n)
                    printf("*");
                else
                    printf(" ");
            }
            printf("\n");
        }
 
    }
 
}

二,空心六边形

边长为n的空心正六边形,并连接三条长对角线

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

输入

输入第一行一个整数T,代表接下来有T组测试数据。 
接下来T行,每行有一个整数n。
数据范围:1≤T≤20,1≤n<500,n为奇数.

输出

对于每一组测试数据,输出对应图案。输出格式与样例输出保持一致。


#include<stdio.h>
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n,i,j,k;
        scanf("%d",&n);
        for(i=1;i<=n*2-1;i++)
        {
            for(j=1;j<=n*4-3;j++)
            {
                if(i==n&&j%2||(i==1||i==n*2-1)&&(j>=n&&j<=n*3-2&&j%2)||i+j==n+1||i+j==3*n-1||i+j==5*n-3||i-j==-3*n+3||i-j==-n+1||i-j==n-1)
                    printf("*");
                else
                    printf(" ");
            }
            printf("\n");
        }
    }
}

三,打印房子图形

现在给你一个三角形的高为h,底为2*h-1,正方形的边长为2*h-1,你需要打印一个三角形,并且在下面要加一个空心正方形
注意:三角形的底与正方形的上边是重合的。


输入


第一行输入一个整数T(1≤T≤100),表示接下来有T组测试数据。
对于每组测试数据,包含一个整数h(2≤h≤100),表示三角形的高。

样例输入

2
3
4

样例输出

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

#include<stdio.h>
 
#include<string.h>
 
int main()
 
{
 
    int T;
 
    scanf("%d",&T);
 
    while(T--)
 
    {
 
        int h,j,x,y;
 
        scanf("%d",&h);
 
        for(int i=1;i<=h;i++)
 
        {
 
            for(int j=h-i;j>0;j--)
 
            {
 
                printf(" ");
 
            }
 
            for(int k=1;k<=2*i-1;k++)
 
                printf("*");
 
                printf("\n");
 
        }
 
    x=2*h-1;
 
    for(int i=1;i<=x-2;i++)
 
    {
 
    printf("*");
 
     for(int j=1;j<=x-2;j++)
 
     {
 
        printf(" ");
 
     }
 
    printf("*\n");
 
    }
 
    for(int i=1;i<=x;i++)
 
        printf("*");
 
    printf("\n");
 
    }
 
    return 0;
 
}

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值