又见菱形

题目描述

ACMer感觉到上次的打印菱形的那道题非常经典,经过几天的反复思考,终于弄明白了那道题的来龙去脉。为了巩固大家的掌握情况,下面他出了一道题加强版的打印菱形来考考大家是否真正掌握了这个知识点!那么,你会做吗?? 

输入

 多组测试数据,每组输入一个自然数n(1<n<100)。n表示所输出菱形上部分的高,如果不明白,请看样例。

输出

 输出相连的菱形。

样例输入

3

样例输出

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

提示

样例中间一行是9个星号(挨着的星号重合)

#include<stdio.h>
int main()
{
     int n,i,a,b,o,d,m,c,h=2,k,k1,k2,k3,l=1;
     int m1,m2,m3,y1,y2,y3,y4;
     while ( scanf ( "%d" ,&n)!=EOF)
     {
        for (i=1;i<=n;i++)
       {
         k=n+(i-1)*(-1)-1;
         for (k1=k;k1>0;k1--)
         printf ( " " );
         a=1+(i-1)*2;
         for (k2=a;k2>0;k2--)
         printf ( "*" );
         b=(n-1)*2-1;
         o=b+(i-1)*(-2);
         for (k3=o;k3>0;k3--)
         printf ( " " );
          c=1+(i-1)*2;
          if (i==n)
          c=c-1;
            for (m=c;m>0;m--)
            printf ( "*" );
          printf ( "\n" );
        }
      for (i=1;i<n;i++)
     {
         m1=1+(i-1)*1;
         for (y1=m1; y1>0;y1--)
         printf ( " " );
         m2=1+(n-1)*2-2+(i-1)*(-2);
         for (y2=m2;y2>0;y2--)
         printf ( "*" );
         m3=1+(i-1)*(2);
         for (y3=m3;y3>0;y3--)
         printf ( " " );
         for (y4=m2;y4>0;y4--)
             printf ( "*" );
         printf ( "\n" );
         }
     
    }
     return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值