描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。
输入描述:
多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。
示例1
输入:
5
复制输出:
* * * * * * * * * * * * * * *
解题思路
作为一道非常简单的循环图形题,这个题目要注意到图形中空白的部分,C语言中的空白是‘ ’字符,所以把这个图形看成两个部分左边打印空格符组成的倒三角,右边打印*字符组成的正三角
int main()
{
int num = 0;
int row = 0;
int col = 0;
while (scanf("%d", &num) != EOF)
{
for (row = 0; row < num; row++)//循环5行
{
for (col = 0; col < num - 1 - row; col++)//打印倒三角
{
printf(" ");
}
for (col = 0; col <= row; col++)//打印正三角
{
printf("* ");
}
printf("\n");
}
}
system("pause");
return 0;
}
结果
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转金字塔图案。
输入描述:
多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。
示例1
输入:
5
复制输出:
* * * * * * * * * * * * * * *
解题思路
这一题和上一题没什么不同,只不过打印了空格符的正三角,和*字符的倒三角
#include<stdio.h>
int main()
{
int num = 0;
int row = 0;
int col = 0;
while (scanf("%d", &num) != EOF)
{
for (row = 0; row < num; row++)
{
for (col = 0; col < row; col++)
{
printf(" ");
}
for (col = 0; col <num - row; col++)
{
printf("* ");
}
printf("\n");
}
}
system("pause");
return 0;
}
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。
输入描述:
多组输入,一个整数(2~20)。
输出描述:
针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。
示例1
输入:
2
复制输出:
* * * * * * * * *
解题思路
这道题是三角形的变种,把菱形看作上下两个部分,上半部分打印3行的正三角,下半部分打印2行的倒三角
int main()
{
int num = 0, row = 0, col = 0;
while (scanf("%d", &num) != EOF)
{
for (row = 0; row < num + 1; row++)//打印上半部
{
for (col = 0; col < num - row; col++)
{
printf(" ");
}
for (col = 0; col <= row; col++)
{
printf("* ");
}
printf("\n");
}
for (row = 0; row < num; row++)//打印下半部分
{
for (col = 0; col <= row; col++)
{
printf(" ");
}
for (col = 0; col < num - row; col++)
{
printf("* ");
}
printf("\n");
}
}
system("pause");
return 0;
}
校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的K形图案。
输入描述:
多组输入,一个整数(2~20)。
输出描述:
针对每行输入,输出用“*”组成的K形,每个“*”后面有一个空格。
示例1
输入:
2
复制输出:
* * * * * * * * * * *
解题思路
又是一个三角型变种提,还是分为上下部分打印就行
int main()
{
int num = 0;
int row = 0;
int col = 0;
while (scanf("%d", &num) != EOF)
{
for (row = 0; row < num + 1; row++)
{
for (col = 0; col < num + 1 - row; col++)
{
printf("* ");
}
printf("\n");
}
for (row = 0; row < num; row++)
{
for (col = 0; col <= 1 + row; col++)
{
printf("* ");
}
printf("\n");
}
}
system("pause");
return 0;
}
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的箭形图案。
输入描述:
本题多组输入,每行一个整数(2~20)。
输出描述:
针对每行输入,输出用“*”组成的箭形。
示例1
输入:
2
复制输出:
* ** *** ** *
解题思路
同上
int main()
{
int num = 0;
int row = 0;
int col = 0;
while (scanf("%d", &num) != EOF)
{
for (row = 0; row < num + 1; row++)
{
for (col = 0; col < num - row; col++)
{
printf(" ");
}
for (col = 0; col <= row ; col++)
{
printf("*");
}
printf("\n");
}
for (row = 0; row < num; row++)
{
for (col = 0; col <= row; col++)
{
printf(" ");
}
for (col = 0; col < num - row; col++)
{
printf("*");
}
printf("\n");
}
}
system("pause");
return 0;
}
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。
输出描述:
针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。
示例1
输入:
4
复制输出:
* * * * * * * * * * * *
解题思路
看成打印一个n*n的正方形,当行和列不再边上的时候,打印空字符,其余时候打印*字符就好
int main()
{
int num = 0;
int row = 0;
int col = 0;
while (scanf("%d", &num) != EOF)
{
for (row = 0; row < num; row++)
{
for (col = 0; col < num; col++)
{
if ((row != num - 1 && row != num - num)&&(col != num - 1 && col != num - num))
{
printf(" ");
}
else
{
printf("* ");
}
}
printf("\n");
}
}
system("pause");
return 0;
}