KiKi 学习了循环,BoBo 老师给他出了一系列打印图案的练习。
目录
一、直角三角形图案
示例:
输入:4
输出:
*
* *
* * *
* * * *
代码实现:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
// 每行输出 i 个 * + 空格
for (j = 0; j < i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
二、翻转直角三角形图案
示例:
输入:5
输出:
* * * * *
* * * *
* * *
* *
*
代码实现:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
// 每行输出 n + 1 - i 个 * + 空格
for (j = 0; j < n + 1 - i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
三、带空格直角三角形图案
示例:
输入:5
输出:
*
* *
* * *
* * * *
* * * * *
代码实现:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
// 每行首先打印 n - i 组空格(2 个空格为一组)
for (j = 0; j < n - i; j++)
{
printf(" "); // 打印一组空格
}
// 再打印 i 个 * + 空格
for (j = 0; j < i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
四、K 形图案
示例:
输入:2
输出:
* * *
* *
*
* *
* * *
代码实现:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
// 一、打印上半部分 - n 行的翻转直角三角形图案
for (i = 1; i <= n; i++)
{
for (j = 0; j < n + 2 - i; j++)
{
printf("* ");
}
printf("\n");
}
// 二、打印下半部分 - n + 1 行的直角三角形图案
for (i = 1; i <= n + 1; i++)
{
for (j = 0; j < i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
五、金字塔图案
示例:
输入:4
输出:
*
* *
* * *
* * * *
代码实现:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
// 每行首先打印 n - i 个空格
for (j = 0; j < n - i; j++)
{
printf(" ");
}
// 再打印 i 个 * + 空格
for (j = 0; j < i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
六、翻转金字塔图案
示例:
输入:5
输出:
* * * * *
* * * *
* * *
* *
*
代码实现:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
// 每行首先打印 i - 1 个空格
for (j = 0; j < i - 1; j++)
{
printf(" ");
}
// 再打印 n + 1 - i 个 * + 空格
for (j = 0; j < n + 1 - i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
七、菱形图案
示例:
输入:2
输出:
*
* *
* * *
* *
*
代码实现:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
// 一、打印上半部分 - n 行的金字塔图案
for (i = 1; i <= n; i++)
{
for (j = 0; j < n + 1 - i; j++)
{
printf(" ");
}
for (j = 0; j < i; j++)
{
printf("* ");
}
printf("\n");
}
// 二、打印下半部分 - n + 1 行的翻转金字塔图案
for (i = 1; i <= n + 1; i++)
{
for (j = 0; j < i - 1; j++)
{
printf(" ");
}
for (j = 0; j < n + 2 - i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
八、反斜线图案
示例:
输入:4
输出:
*
*
*
*
代码实现一:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
// 每行首先打印 i - 1 个空格
for (j = 0; j < i - 1; j++)
{
printf(" ");
}
// 再打印 * + \n
printf("*\n");
}
}
return 0;
}
代码实现二:
#include <stdio.h>
// 1234
// 1*
// 2 *
// 3 *
// 4 *
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
{
if (i == j)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
九、正斜线图案
示例:
输入:4
输出:
*
*
*
*
代码实现一:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
// 每行首先打印 n - i 个空格
for (j = 0; j < n - i; j++)
{
printf(" ");
}
// 再打印 * + \n
printf("*\n");
}
}
return 0;
}
代码实现二:
#include <stdio.h>
// 1234
// 1 *
// 2 *
// 3 *
// 4*
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n + 1 - i; j++)
{
if (i + j == n + 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
十、X 形图案
示例:
输入:5
输出:
* *
* *
*
* *
* *
代码实现:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n; j++)
{
if (i == j)
printf("*"); // 打印反斜线上的 *
else if (i + j == n + 1)
printf("*"); // 打印正斜线上的 *
else
printf("\n");
}
printf("\n");
}
}
return 0;
}