题解 | #菱形图案#
菱形图案
https://www.nowcoder.com/practice/8b935f8ffe99445dbd42494febd13e45
#include<stdio.h> int main() { int a,i,j,k; while(scanf("%d",&a)!=EOF)//多组输入标配,有输入,scanf()不等于EOF,进入循环 { for(i=1;i<=a+1;i++)//先正三角输出 { for(j=1;j<=a-i+1;j++)//空格从上往下看,随行数增加而减小,所以是j<=a-i+1 { printf(" "); } for(k=1;k<=i;k++)//星星从上往下看,随行数增加而增加,所以是k<=i { printf("* "); } printf("\n"); }//前a+1行 for(i=1;i<=a;i++)//再倒三角输出后a行 { for(j=1;j<=i;j++)//空格从上往下看,随行数增加而增加,所以是j<=i { printf(" "); } for(k=1;k<=a-i+1;k++)//星星从上往下看,随行数增加而减小,所以是k<=a-i+1 { printf("* "); } printf("\n"); } } return 0; }
总结:
从上往下看,随行数增加而增加,是<=变化的行数(前提,从1开始)
随行数增加而减小,是<=总行数减去变化的行数加1(前提,从1开始)