C语言题目:打印图形,菱形

C语言题目:打印图形,菱形

打印此图图形,需要根据输入的数字大小,改变菱形的尺码

不能是单纯的printf

这里能做的方法有很多,一维数组,二维数组...等等

这里举例最简单的,不用数组

观察图像,可以分为上半部分和下班部分,然后上半部分是一行中有最多*的到只有一颗*的,反之就是下半部分,因此可以通过行数控制图形的大小,行数越多,说明图形越大,因此设定一个sz变量

假设sz=7;

先来写上半部分,竟然sz=7,那么上半部分打印7行

通过循环就可以实现

然后再考虑上半部分的打印内容

可以分为打印 空格 和打印 *

观察图形,上半部分,打印*之前都会打印 空格 ,所以先观察 空格 ,空格 每次打印会变得越来越少,起初打印sz个,然后就是sz-1个,再是sz-2,所以可以利用for循环通过行数,来控制每行 空格 打印的数量

sz-1-i:i第一次-0,第二次-1,第三次-2

所以可以再通过i来改变 空格 的数量

有了空格就可以打印 * 了

观察可以得到每次 打印的* 都是奇数

1,3,5,7,...

2*i+1:这样得到的就是奇数

2*0+1=1

2*1+1=3

...

如此,又可以利用for循环通过每次打印2*i+1个来控制 * 的数量

最后再printf("\n")换行就行

这样就可以得到上半部分了

接下来是下半部分,下半部分是6行,所以是sz-1行

也可以利用for循环打印每行

然后就是和上面相反,也分为 * 和 空格

通过观察图形可知,每次 空格 的数量都是i+1个 空格 ,所以 空格 也可以利用for循环打印

其次就是下半部分的*号打印

每次打印*的个数是

11 9 7 5 3 1

有多到少

因为也是打印奇数个,所以可以通过2*n+1来打印

因为有多到少,所以应该变成2*n-1

所以2*n-1

n的变话应该是

6 5 4 ...

2*6-1 =11

2*5-1 = 9

...

n=sz-1-i

所以利用for循环

最后再printf("\n")换行

这样就可以打印出来了

如果有错,希望纠错!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

srhqwe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值