打印图形-for

来源:互联网 发布:上实剑桥 知乎 编辑:程序博客网 时间:2024/05/01 19:40
前天的思考题:打印如下图形:    

       *
      ***
     *****
    *******
   *********
  ***********

因为以前做过这题,所以就按照之前的思维,很快的把这道题敲出来了

    int i,j,k;
    for (i=1; i<=6; i++) {
        for(j=1;j<=6-i;j++){
            printf(" ");}
        for (k=1; k<=2*i-1; k++) {
            printf("*");
        }
        printf("\n");
    }
之后问了钟智做的怎么样,他就把做了一半的代码发给了我,看了他的代码之后,感到之前,自己的思维是有多狭隘,完全没想到还可以用if-else来解这道题。后来根据这思路,又想到了新的代码:

    int i,j;
    for (i=1;i<=6;i++)
    {
        for (j=1;j<6+i;j++)
        {
        if(j<=6-i) printf(" ");
        else printf("*");
        }
        printf("\n");
    }
后来,看了钟智的整段代码:

   printf("请输入一个数字N\n");
   int N;
   scanf("%d",&N);
   for (int i=1;i<=N;i++)
    {
        for (int j=1;j<=2*N-1;j++)
        {
        if(j<=N+i-1&&j>=N-i+1) printf("*");
        else printf(" ");
        }
        printf("\n");
    }
我只能说完全没想过还可以用&&。一道题可以用多种方法解,千万不能将自己的思维给禁锢。拓宽思维,展望人生!


0 0