- *
- ***
- *****
- *******
- *********
- ***********
- *************
- ***************
- *****************
- *******************
- *****************
- ***************
- *************
- ***********
- *********
- *******
- *****
- ***
- *
在网上搜到的代码如下所示:
- for(int i=0;i<19;i++)
- {
- int j=0;
- while (j<19)
- {
- if (i<=9)
- {
- if (j<=9)
- {
- if (i+j>=9)
- printf("*");
- else
- printf(" ");
- }
- else
- if (j-i<=9)
- printf("*");
- else
- printf(" ");
- }
- else
- {
- if (j<=9)
- {
- if (i-j<=9)
- printf("*");
- else
- printf(" ");
- }
- else
- if (j+i<=27)
- printf("*");
- else
- printf(" ");
- }
- j++;
- }
- printf("\n");
- }
但是我觉得代码有点多,于是自己写了一个,希望大家提点意见:
- #include "stdio.h"
- void main()
- {
- for (int i=0; i<19; i++)
- {
- int m;//用于保存打印每行左边空格的个数
- int n;//用于保存打印每行的*符号
- /*等差数列an = 2*i+1(其中0<=i<=9)*/
- /*前10行为递增等差数列,所以左边打印的空格数为从9到0*/
- if (0<=i && i<=9)
- {
- m = 9-i; //从第一行到第十行是首项为9,公差为-1的递减等差数列
- n = 2*i+1;
- }
- else if (9<i && i<19)
- {
- m = i-9;//后9行左边空格为首项为1,公差为1的递增等差数列
- n = 37-2*i;
- }
- while (m-- >0 )
- {
- printf(" ");
- }
-
- while (n-->0)
- {
- printf("*");
- }
- printf("\n");
- }
- }
阅读(2017) | 评论(0) | 转发(0) |