输入一个正整数n,打印出一个n行菱形或上三角或下三角图案

例如

输入:5

输出:

  #
 ###
#####
 ###
  #
显然要用循环,那么如何使用呢?

把行数n看作常数,再用某个变量去遍历每一行,在每一行中使用另一个变量去打印每一行的内容。或许捋清各个变量的关系会略微麻烦。

先定义三个变量n,j,i,n作为总行数,j可以遍历每一行,然后用i去逐一打印每一行的空格和字符。

自己写的代码如下

#include<stdio.h>
int main() 
{
    char ch;
    scanf("%c", &ch);
    int i, j;//n为总行数长数,j从第一行遍历,i考察每一行
    int n = 9;
    for (j = 1; j <= (n + 1) / 2; j++)//首先从中间的一行为基准,将问题考虑成打印上下俩三角
    {
        for (i = 0; i < (n + 1) / 2 - j; i++)//打印每一行空格
        {
            printf(" ");
        }
        for (i = 0; i < 2 * j - 1; i++)//打印每一行字符
        {
            printf("%c", ch);
        }
        printf("\n");
    }//遍历上三角每一行
    for (j = 1; j <= (n - 1) / 2; j++)
    {
        for (i = 0; i < j; i++)
        {
            printf(" ");
        }
        for (i = 0; i < n - 2 * j; i++)
        {
            printf("%c", ch);
        }
        printf("\n");
    }

    return 0;
}

在真正写的时候我自己容易纠结每个变量的职能,导致犹豫半天,或许这时先把能写的随便找个字母替代,在接着写会比较好吧(取好变量名真重要)。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值