C语言打印菱形
思路:想要打印一个菱形,可以分为上下两部分,通过观察可以发现上半部分星号的规律是 1 3 5 7故理解为 2×对应行数 + 1 ,空格是4 3 2 1故理解为 行数-对应行数-1。
上半部分代码如下
for (int i = 0;i < line;i++) { //上半部分 int j = 0; for (j = 0; j < line - i - 1; j++)//空格 { printf(" "); } for (j = 0; j < 2 * i + 1; j++)//* { printf("*"); } printf("\n"); }
思路:观察下半部分可以看出,空格和对应行数相同,*号是7 5 3 1 满足2×(行数 - 对于行数值- 1) -1。
代码如下
for (int i = 0; i < line - 1; i++) { int j = 0; for (j = 0; j <= i;j++)//空格 { printf(" "); } for (j = 0; j < 2 * (line - 1 - i) - 1 ;j++)//* { printf("*"); } printf("\n"); }
总代码
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h>nt main() { int line = 0; scanf("%d",&line); for (int i = 0;i < line;i++) { //上半部分 int j = 0; for (j = 0; j < line - i - 1; j++)//空格 { printf(" "); } for (j = 0; j < 2 * i + 1; j++)//* { printf("*"); } printf("\n"); } //下半部分 for (int i = 0; i < line - 1; i++) { int j = 0; for (j = 0; j <= i;j++)//空格 { printf(" "); } for (j = 0; j < 2 * (line - 1 - i) - 1 ;j++)//* { printf("*"); } printf("\n"); } return 0; }