问题描述解决思路代码实现结果输出
问题描述在屏幕中打印以下图形
观察规律可以看出,这个菱形上下两部分关于中间一行轴对称,中间的轴(line)作为突破口
上半部分:每一行由2*i+1个号组成,(i从0开始),为了视觉感明显,每一行号左右有line-i-1个空格
下半部分:每一行由2*(line-i-1)-1个*号组成(i从0开始),*号左右有i+1个空格
#include结果输出int main() { int line = 0; int i = 0; scanf("%d", &line);//最中间的第7行 //打印上半部分 for (i = 0; i < line; i++) { //打印一行 //打印空格 int j = 0; for (j = 0; j < line - 1 - i; j++) { printf(" "); } //打印* for (j = 0; j < 2 * i + 1; j++) { printf("*"); } printf("n"); } //打印下半部分 for (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; }
只需输入最中间的行号,具有普遍性



