高手病犯了~之打印图形4~

这次高手病挑战的是一个简单得离谱的图形~难道是去不挑战高难度吗~这个先保留意见~其实~发这博客的目的是想学习一下编程思想~不知有多少人留意到~在打印图形2里面就用到了一种数学方法~叠加取代法(虽然九九不知道是不是有这种方法~但是感觉这样容易理解)~

下面就讲讲如何应用叠加取代法吧~


当N=5时~

打印


        *

      **

    ***

  ****

*****


感觉图形不是很对齐~但能看出大致框架结构就行了~


这个可以理解为一个矩形减去


****

***

**

*

就行了~


所以思路就是在打印矩形的基础上再打印一个倒三角(如上图)~


打印两者字符可以合并在一个输出函数中~当两者都满足条件时打印

' '就行了~当然~还要考虑换行符~


具体代码如下~


#include<stdio.h>

#define N 5

int main()

{

     int i=0;

     int k=N+1;


     for (i=0;i<k*(k-1);i++)

    {

         int a=i/k+1;

         int b=k-a-2;


         putchar(" *\n"[(i%k==k-1)+(i%k>b)]);

    }


     return 0;

}


后记~发帖当天19:14更~哎呀呀~想不到一个大大的疏忽啊~原程序有一个无关变量除了有个赋值表达式外~输出根本没有用到~我也在原贴修改一下算了~有种无语的感觉~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值