那么好了好了,宝子们,今天给大家总结一下“打印金字塔图案”,来吧,开始整活!⛳️
最近在牛客网上刷题,遇到了这个打印类型的题目,我想总结一下,然后分享给大家。
一、正向金字塔
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的金字塔图案。
输入描述:
多组输入,一个整数(2~20),表示金字塔边的长度,即“*”的数量,,也表示输出行数。
输出描述:
针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。
#define _CRT_SECURE_NO_WARNINGS 1
//正金字塔!
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)//题目的要求:多组输入
{
int i = 0;
for (i = 0; i < n; i++)//外层循环:控制行
{
int j = 0;
//下面的两个内层循环:控制每一行所打印的内容
//1.打印空格
for (j = 0; j < n - 1 - i; j++)
{
printf(" ");
}
//2.打印*
for (j = 0; j <= i; j++)
{
printf("* ");//这里我们将*和空格看作一个整体
}
printf("\n");//每一行内容结束之后必须换行
}
}
return 0;
}
二、翻转金字塔
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转金字塔图案。
输入描述:
多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int n = 0;//输入所要打印的行数
while (scanf("%d", &n) != EOF)//题目要求:多组输入
{
int i = 0;
for (i = n; i > 0; i--)//外层循环:控制打印的总行数
{
int j = 0;//内层的两个循环是控制每一行所打印的内容
//1.打印空格数
for (j = n - i; j > 0; j--)
{
printf(" ");
}
//2.打印的*
for (j = i; j > 0; j--)
{
printf("* ");
}
//在每一行的内容打印完毕之后需要换行
printf("\n");
}
}
return 0;
}
三、总结
这种打印类型的问题,一定要确定好每一行,每一列每一行的打印内容是什么。
而且最重要的是,每一行打印内容里面的循环控制条件,要好好想一想,如何确定控制条件才是这
道题成功的关键!
当我们想不明白的时候,可以拿出一张纸,自己画一些图形来找一些规律。
好了,今天的分享就到这里了
如果对你有帮助,记得点赞👍+关注哦!
我的主页还有其他文章,欢迎学习指点。关注我,让我们一起学习,一起成长吧!