目录
解题前的手绘图:
打印三类三角形:
-
直角三角形:
- 解题分析:
- 直角三角形,第一行一个*.第二行两个*,依次递增;
- 定义i表示行数,定义j表示列数,就固定好小*的位子啦~~~
- 小代码如下:
#include<stdio.h>
#include<stdlib.h>
int main() {
int i, j;
for (i = 0; i < 6; i++) {
for (j = 0; j < i; j++) {
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}
运行结果:
2.等腰三角形:
解题分析:
- 行数为4;第一行输出三个空格一个*,然后随着行数增加依次递减;,最后一行输出行数的二倍减一颗*,满星!
- 定义行数i,制定总行数n,l列数j;
- 利用for循环得到代码如下:
-
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main(){ int i, j, n; printf("请输入要打印等腰三角形的行数: "); scanf("%d", &n); for (i = 1; i <= n; i++) { for (j = 1; j <= n-i; j++) { printf(" "); } for (j = 1; j <= 2 * i - 1; j++) { printf("*"); } printf("\n"); } system("pause"); return 0; }
运行结果:
-
3..空心等腰三角形:
- 解题分析:
- 每行字符是n+i-1个,只有第n-i+1和n+i-1打印星星;
- 定义总行数n,行号i;列号j;i=0表示第一行;
- 直接贴代码:
-
#include<stdio.h> #include<stdlib.h> int main() { int i, j, n; printf("请输入要打印的三角形行数: "); scanf("%d", &n); for (i = 1; i < n; i++) { for (j = 1; j <= n + i - 1; j++) { if (j == n - i + 1 || j == n + i - 1) { printf("*"); } else { printf(" "); } }printf("\n"); } for (i = 1; i <= 2 * n - 1; i++) { printf("*"); } system("pause"); return 0; }
运行结果:
-
打印四类菱形:
-
1.菱形打印
- 解题分析:
- 分两部分打印.菱形等于先打印一个正的等腰三角形,在接着打印一个倒的等腰三角形;
- 根据前面等腰三角形代码进行升级改进,得到代码如下:
-
#include<stdio.h> #include<stdlib.h> int main() { int i ,j,n,h; printf("输入行数: "); scanf("%d", &h); for (i = 1; i <= h; i++)//上半部分打印 { for (n = 1; n <= h - i; n++)//打印空格, { printf(" "); } for (j = 1; j <= 2 * i - 1; j++) { printf("*"); } printf("\n"); } for (i = 1; i <= h - 1; i++)//下半部分 { for (n = 1; n <= i; n++) { printf(" "); } for (j = 1; j <= 2 * (h - i) - 1; j++) { printf("*"); } printf("\n"); } system("pause"); return 0; }
运行结果:
-
2.半菱形(递增)打印:
- 解题分析:
-
打印正直角三角形,然后打印倒三角形;
-
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main() { int i, j, n; printf("输入打印的行数:"); scanf("%d", &n); for (i = 0; i < n; i++) { for (j = 0; j <= i; j++) { printf("*"); } printf("\n"); } for (i = n + 1; i <= 2 * n - 1; i++) { for (j = 1; j <= 2 *n -i; j++) { printf("*"); } printf("\n");
运行结果:
3.半菱形(奇数增*)
解题分析:
-
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main() { int i, j, n; printf("输入打印的行数:"); scanf("%d", &n); for (i = 1; i <= n; i++) { for (j = 1; j <= 2 * i - 1; j++) { printf("*"); } printf("\n");//每打印完一行,转到下一行 } for (i = n+1; i <=2*n-1; i++) { for (j = 1; j <= 4*n-2*i; j++) { printf("*"); } printf("\n"); } system("pause"); return 0; }
-
运行结果:
4.空心菱形打印:
- 解题分析:
- 代码如下:
-
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main() { int i, j, n; printf("输入打印的行数:"); scanf("%d", &n); for (i = 0; i < n; i++) { for (j = 0; j < n - i; j++) { printf(" ");//打印上半部分外部的的空格 } for (j = 0; j < 2 * i + 1; j++) { if ((j == 0) || (j + 1 == 2 * i + 1)) { printf("*");//打印上半部分的星星 } else { printf(" ");剩余部分打印空格 } } printf("\n"); } for (i = 0; i < n-1; i++) { for (j = 0; j < i + 2; j++) { printf(" "); } for (j = 2*(n-1); j > 2 * i + 1; j--) { if ((j == 2 * (n - 1)) || (j - 1 == 2 * i + 1)) { printf("*"); } else { printf(" "); } } printf("\n"); } printf("\n"); system("pause"); return 0; }
运行结果:
午安.