回 帖 发 新 帖 刷新版面

主题:怎么用最少的语句实现下面图形呢?

怎么用最少的语句实现下面图形呢?
   *
  ***
 *****
*******
 *****
  ***
   *

回复列表 (共8个回复)

沙发


#include <stdio.h>
void main ()
{
    int i,j;

    for (i=1;i<5;i++)
    {
        for (j=3;j>i-1;j--)
            printf(" ");
        for (j=1;j<2*i;j++)
            printf ("*");
        printf("\n");
    }

    for (i=1;i<4;i++)
    {
        for (j=0;j<i;j++)
            printf(" ");
        for (j=1;j<=7-2*i;j++)
            printf("*");
        printf("\n");
    }

}

板凳

#include <stdio.h>
void main()

  int i,j;
  for (i=1;i<=4;i++)
  {
     for (j=1;j<=7;j++)
        {
         if (j+i<=4||j-i>=4)
            printf(" ");
         else printf("*");
        }
     printf("\n");
  }
  for (i=3;i>=1;i--)
  {
     for (j=1;j<=7;j++)
        { 
         if (j+i<=4||j-i>=4)
            printf(" ");
         else printf("*"); 
        }
      printf("\n");
  }
}

3 楼

最好的办法当然是直接画而不用什么循环了

4 楼


支持田野的思路.

5 楼

printf("   *   \n  ***  \n ***** \n*******\n ***** \n  ***  \n   *   \n");

6 楼


#include <stdio.h> 
#include <math.h>
#define N 5 /* N为阶数,可以改为其他正整数 */ 
int main() 
{
   int i,j; 
   
   for(i=1;i<N*2;printf("\n"),i++) 
   for(j=1;j<N*2;putchar(N-abs(i-N)<=abs(j++-N)?' ':'*'));
   
   return 0;

7 楼

用数组呢?

8 楼

最懒的方法:
program ss;
begin
writeln('   *');
writeln('  ***');
writeln(' *****');
writeln('*******');
writeln(' *****');
writeln('  ***');
writeln('   *');
emd.

我来回复

您尚未登录,请登录后再回复。点此登录或注册