C语言利用for循环打印菱形

 C语言利用for循环打印菱形(高度为奇数)

这次用的方法是上下部分分开打印,先打印上部分,再打印下部分。

先举个简单的例子打印,再改进代码,登堂入室从而理解。

例:打印一个高度(高度必须为奇数)为 5 的菱形,上下拆分 就是 上部分为 3行的三角形 ,下部分为2行的倒三角形(代码如下:)

 

#include<stdio.h>
int main()
{
    int i,j;
    for(i = 1;i <= 3;i++)//打印高度为3的三角形
    {
        for(j=i;j<=3;j++)//打印上部分空格
        {
            printf(" ");
        }
        for(j = 1;j <= 2*i-1;j++)//打印三角形实体
        {
            printf("*");
        }
            printf("\n");
        }
    //=================================上下部分分界线
        for(i = 1;i <= 2;i++) //打印下部分高度为2的倒三角形
        {       
        for(j = 1;j <= (2+i)-1;j++) //打印下部分空格
        {
        printf(" ");
        }
        for(j = 1;j <= 5-(i*2);j++)//打印倒三角形实体
        {
        printf("*");
        }
        printf("\n");
        }

        return 0;
        }

 

效果图如下:

 

 

我们知道上面的原理 我就就可以进阶的改写代码 从而实现打印任意高度的菱形

我们要求输入高度 且 改变里面的数值 就得到了以下代码:

 

 

#include<stdio.h>
int main()
{
    int i,j,height;
    printf("please enter height:");
    scanf("%d",&height);
    for(i = 1;i <= (height / 2) + 1;i++)//打印高度为height的三角形
    {
        for(j=i;j<= (height / 2) + 1;j++)//打印上部分空格
        {
            printf(" ");
        }
        for(j = 1;j <= 2*i-1;j++)//打印三角形实体
        {
            printf("*");
        }
            printf("\n");
        }
    //=================================上下部分分界线
        for(i = 1;i <= height / 2;i++) //打印下部分高度的倒三角形
        {       
        for(j = 1;j <= (2+i)-1;j++) //打印下部分空格
        {
        printf(" ");
        }
        for(j = 1;j <= height - (i*2);j++)//打印倒三角形实体
        {
        printf("*");
        }
        printf("\n");
        }

        return 0;
        }

 

 

 

效果图:

 

注意:这里的高度必须是奇数,否者是不能打印出来菱形的! 

说明:这里的打印空格 和 打印三角形实体 是需要算出来的,可以去研究一下。

最后:希望能帮到有需要的人。

 

  • 74
    点赞
  • 222
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值