手把手教你如何处理C语言打印图形的题目

目录

序言

打印因素

循环次数

行数

空格数

字符数

打印倒金字塔

打印菱形

打印K形图案

两道题目

第一道:打印反斜线,利用代码实现下图的效果。

第二道:打印空心三角形,利用代码实现这种效果

总结

一定要把握住行数,空格数,字符数三者之间的关系和规律

一定要确定行数和循环次数的关系

祝大家能够学会这类编程题目的写法和思路


序言

相信很多人,刚开始学习C语言的时候总是会碰到各种各样的打印图形的题目,然后就会觉得很麻烦,或者说还不能够很好的编写程序以达到自己的需求。

所以在这篇博客中,我会详细的讲解,以便于各位理解

打印因素

在打印一个图形的时候,我们往往只需要确定四个要点

  1. 循环次数

  2. 行数

  3. 空格数

  4. 字符数

下面我会仔细地从这四个角度剖析例题,来进行讲解。

打印倒金字塔

程序地实现效果如下:

      先从循环数开始入手,我们将循环数设置为变量a,a就是循环的次数。然后变量i为行数,且i的初始值为0,i是小于a的。将行数确定下来后,我们就需要考虑空格数和字符数了。

       仔细分析这个图案的规律,我们不难得出空格数加字符数等于行数,那么这不就简单了吗?先打印空格,再打印字符,最后换行。所以用变量j来表示空格数,j<a-i就是为了保证字符数正常打印的条件。

好了,看下一题。

打印菱形

看到这个题目应该反应过来,跟上面一样的操作,确定行数,确定空格数,确定字符数,只是要拆分为上下两部分。

来看代码实现效果

还是先把num设置为可输入的变量,再将line1变量设置为菱形上半部分的行数,将j变量设置为空格数。注意此时的空格数、行数、字符数的关系为:空格数等于num-line1,而字符数等于行数。

所以对照着上半部分,可以得到下半部分的代码,在此就不多赘述。

打印K形图案

也是一样的分为上下两部分,看代码

还是四点,循环次数,行数,空格数,字符数。这里没有空格就不考虑了。

循环次数由自己输入;行数小于等于循环次数;字符数等于num,由于在这里l变量是小于等于num变量的,所以我在写m变量和j变量的时候就没有仔细的去抠细节。大家见谅。

所以整个的思路非常清晰。下面就放两道简单一点的题目

两道题目

第一道:打印反斜线,利用代码实现下图的效果。

答案

int main()
{
	int num = 0;
	while (scanf("%d", &num) != EOF)
	{
		//行数
		int l = 0;
		for (l = 0; l < num; l++)
		{
			for (int i = 0; i <= l - 1; i++)
			{
				printf(" ");
			}
			printf("* ");
			
			printf("\n");
		}
	}
	return 0;
}

第二道:打印空心三角形,利用代码实现这种效果

答案

int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        int i = 0;
        for (i = 1; i <= n; i++)
        {
            int j = 0;
            for (j = 1; j <= n; j++)
            {
                if ((i == j) || (j == 1) || (i == n))
                {
                    printf("* ");
                }
                else
                {
                    printf("  ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

总结

  1. 一定要把握住行数,空格数,字符数三者之间的关系和规律

  2. 一定要确定行数和循环次数的关系

  3. 祝大家能够学会这类编程题目的写法和思路

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值