53.翻转直角三角形图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转直角三角形图案。
输入描述:
多组输入,一个整数(2~20), 表示翻转直角三角形直角边的长度,即“*”的数量, 也表示输出行数。 输入示例:5
输出描述:
针对每行输入,输出用“*”组成的对应长度的翻转直角三角形 ,每个“*”后面有一个空格。 输出示例: * * * * * * * * * * * * * * *
解析:
1.多组输入
2.每两个*中间有空格
3.控制好一行输出的内容
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n = 0; while (~scanf("%d", &n)) { int i = 0; //行数 for (i = 0; i < n; i++) { int j = 0; //每行的内容 for (j = n; j > i; j--) { printf("* "); } printf("\n"); } } return 0; }
54.带空格的直角三角形图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。
输入描述:
多组输入,一个整数(2~20), 表示直角三角形直角边的长度,即“*”的数量, 也表示输出行数。 输入示例:5
输出描述:
针对每行输入,输出用“*”组成的对应长度的直角三角形, 每个“*”后面有一个空格。 输出示例: * * * * * * * * * * * * * * *
解析:
本题第二中写法是经过画图发现,我们发现空格位置的i和j的坐标加起来一定小于n-1,于是可以利用本规则解决题目。
代码:
方法一 #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; //每行空格的内容 for (j = n - 1; j > i; j--) { printf(" "); } //每行*的内容 for (j = 0; j <= i; j++) { printf("* "); } printf("\n"); } } return 0; } 方法二 #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; for (j = 0; j < n; j++) { if (i + j < n - 1) printf(" "); else printf("* "); } printf("\n"); } } return 0; }
55.翻转金字塔图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转金字塔图案。
输入描述:
多组输入,一个整数(2~20), 表示翻转金字塔边的长度,即“*”的数量, 也表示输出行数。 输入示例:5
输出描述:
针对每行输入,输出用“*”组成的金字塔, 每个“*”后面有一个空格。 输出示例: * * * * * * * * * * * * * * *
解析:
1.多组输入
2.控制好行数,控制好每一行前面的空格数
代码:
#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; //打印一行的内容 //先打印空格 for (j = 0; j < i; j++) { printf(" "); } //再打印空格 for (j = 0; j < n - i; j++) { printf("* "); } printf("\n"); } } return 0; }
56.菱形图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。
输入描述:
多组输入,一个整数(2~20)。 输入示例:3
输出描述:
针对每行输入,输出用“*”组成的菱形, 每个“*”后面有一个空格。 输出示例: * * * * * * * * * * * * * * * *
解析:
1.首先把菱形的打印分为上下两个部分
2.上下分别控制好行数和空格的个数
3.多组输入
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n = 0; while ((scanf("%d", &n)) != EOF) { //根据n的值打印菱形 int i = 0; //上部分 for (i = 0; i < n; i++) { int j = 0; for (j = 0; j < n - i; j++) { printf(" "); } for (j = 0; j <= i; j++) { printf("* "); } printf("\n"); } //下部分 for (i = 0; i < n + 1; i++) { int j = 0; for (j = 0; j < i; j++) { printf(" "); } for (j = 0; j < n + 1 - i; j++) { printf("* "); } printf("\n"); } } return 0; }
57.K形图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的K形图案。
输入描述:
多组输入,一个整数(2~20)。 输入示例:3
输出描述:
针对每行输入,输出用“*”组成的K形, 每个“*”后面有一个空格。 输出示例: * * * * * * * * * * * * * * * * * * *
解析:
1.多组输入
2.每一行打印完,后面还有空格
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n = 0; while ((scanf("%d", &n)) != EOF) { //根据n的值打印K形 int i = 0; //上部分 for (i = 0; i < n; i++) { int j = 0; for (j = 0; j < n + 1 - i; j++) { printf("* "); } for (j = 0; j < i; j++) { printf(" "); } printf("\n"); } //下部分 for (i = 0; i < n + 1; i++) { int j = 0; for (j = 0; j <= i; j++) { printf("* "); } for (j = 0; j < n - i; j++) { printf(" "); } printf("\n"); } } return 0; }
58.箭形图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的箭形图案。
输入描述:
本题多组输入,每行一个整数(2~20)。 输入示例:3
输出描述:
针对每行输入,输出用“*”组成的箭形。 输出示例: * ** *** **** *** ** *
解析:
1.多组输入
2.每一行前面是空格,后面是*
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n = 0; while ((scanf("%d", &n)) != EOF) { //根据n的值打印箭形 int i = 0; //上部分 for (i = 0; i < n; i++) { int j = 0; for (j = 0; j < 2 * (n - i); j++) { printf(" "); } for (j = 0; j <= i; j++) { printf("*"); } printf("\n"); } //下部分 for (i = 0; i < n + 1; i++) { int j = 0; for (j = 0; j <= 2 * i; j++) { printf(" "); } for (j = 0; j < n + 1 - i; j++) { printf("*"); } printf("\n"); } } return 0; }
59.反斜线图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的反斜线形图案。
输入描述:
多组输入,一个整数(2~20), 表示输出的行数, 也表示组成反斜线的“*”的数量。 输入示例:5
输出描述:
针对每行输入,输出用“*”组成的反斜线。 输出示例: * * * * *
解析:
1.多组输入
2.本题的规则是当i==j时,只打印*
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n = 0; while (~scanf("%d", &n)) { int i = 0; for (i = 0; i < n; i++) { int j = 0; for (j = 0; j < n; j++) { if (i == j) printf("*"); else printf(" "); } printf("\n"); } } return 0; }
60.正斜线图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正斜线形图案。
输入描述:
多组输入,一个整数(2~20), 表示输出的行数, 也表示组成正斜线的“*”的数量。 输入示例:3
输出描述:
针对每行输入,输出用“*”组成的正斜线。 输出示例: * * *
解析:
1.多组输入
2.本题的规则是当i+j==1时,只打印*
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n = 0; while (~scanf("%d", &n)) { int i = 0; for (i = 0; i < n; i++) { int j = 0; for (j = 0; j < n; j++) { if (i + j == n-1) printf("*"); else printf(" "); } printf("\n"); } } return 0; }
61.X形图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。
输入描述:
多组输入,一个整数(2~20), 表示输出的行数, 也表示组成“X”的反斜线和正斜线的长度。 输入示例:5
输出描述:
针对每行输入,输出用“*”组成的X形图案。 输出示例: * * * * * * * * *
解析:
1.多组输入
2.本题的规则是当i+j==1或者i==j时,只打印*
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n = 0; while (~scanf("%d", &n)) { int i = 0; for (i = 0; i < n; i++) { int j = 0; for (j = 0; j < n; j++) { if ((i + j == n - 1) || (i == j)) printf("*"); else printf(" "); } printf("\n"); } } return 0; }
62.空心正方形图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。
输入描述:
多组输入,一个整数(3~20), 表示输出的行数, 也表示组成正方形边的“*”的数量。 输入示例:5
输出描述:
针对每行输入,输出用“*”组成的“空心”正方形, 每个“*”后面有一个空格。 输出示例: * * * * * * * * * * * * * * * *
解析:
1.多组输入
2.本题的规则是当i==0或者i==n-1或者j==0或者j==n-1时,只打印*和空格
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n = 0; while (~scanf("%d", &n)) { int i = 0; for (i = 0; i < n; i++) { int j = 0; for (j = 0; j < n; j++) { if ((i == 0 || i == n - 1) || (j == 0 || j == n - 1)) printf("* "); else printf(" "); } printf("\n"); } } return 0; }
63.空心三角形图案
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”三角形图案。
输入描述:
多组输入,一个整数(3~20), 表示输出的行数, 也表示组成三角形边的“*”的数量。 输入示例:5
输出描述:
针对每行输入,输出用“*”组成的“空心”三角形, 每个“*”后面有一个空格。 输出示例: * * * * * * * * * * * *
解析:
1.多组输入
2.本题的规则是当i==n-1或者j==0或者i==j时,只打印*和空格
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n = 0; while (~scanf("%d", &n)) { int i = 0; for (i = 0; i < n; i++) { int j = 0; for (j = 0; j < n; j++) { if ((i == n - 1) || (j == 0) || (j == i)) printf("* "); else printf(" "); } printf("\n"); } } return 0; }