当前位置: 代码迷 >> C语言 >> 请问打印以下图形的程序应该怎么写?
  详细解决方案

请问打印以下图形的程序应该怎么写?

热度:122   发布时间:2005-05-01 20:41:00.0
请问打印以下图形的程序应该怎么写?
                *
               ***
              *****
               ***
                *
搜索更多相关的解决方案: 图形  打印  

----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <conio.h>void main()
{
    int i,j;
    for(i=0;i<7;i++)
    {
        for(j=6;j>i;j--) printf(" ");
        for(j=0;j<2*i+1;j++) printf("*");
        printf("\n");
    }
    for(i=5;i>=0;i--)
    {
        for(j=5;j>=i;j--) printf(" ");
        for(j=0;j<2*i+1;j++) printf("*");
        printf("\n");
    }
    getch();

}

----------------解决方案--------------------------------------------------------
#include "stdio.h"
#include "math.h"


main()
{int i,j;
for (i=2;i>=-2;i--)
{ for (j=1;j<=5-abs(i);j++)
  if(j>=abs(i)+1&&j<=5-abs(i))printf("*");
  else printf(" ");
printf("\n");}
getch();
}

[此贴子已经被作者于2005-5-4 11:51:00编辑过]



----------------解决方案--------------------------------------------------------
厉害!~~
----------------解决方案--------------------------------------------------------
三楼稍高
----------------解决方案--------------------------------------------------------
这个方法不是很好,
#include <stdio.h>
main()
{
char a[3][10],(*p)[10]=a;
int i;
for (i=0;i<3;i++)
gets(*(p+i));
for (i=0;i<3;i++)
{
  printf("\n");
  printf ("%s",*(p+i));
  }
for (i=1;i>=0;i--)
{
  printf("\n");
  printf ("%s",*(p+i));
}
printf("\n");
}
----------------解决方案--------------------------------------------------------
我的做法 main() { int i,j; for(i=1;i<=5;i+=2) { for(j=1;j<=i;j++) printf("%c",'*'); printf("%c",'/n'); for(i=3;i<=1;i-=2) { for(j=1;j<=i;j++) printf("%c",'*'); printf("%c",'/n'); }
----------------解决方案--------------------------------------------------------
三楼够高

最简单的是这样的:

main(){
printf("  *\n");printf(" ***\n");printf("*****\n");printf(" ***\n);printf("  *\n");}





----------------解决方案--------------------------------------------------------

#include <stdio.h> #include <conio.h>

int main() { register int i,j,k=1,h=3; for(i=0;i<5;i++) { for(j=0;j<h;j++) printf(" "); for(j=0;j<k;j++) printf("*"); printf("\n"); if(i<2) {k+=2; h--;} else {k-=2; h++;} } getch(); return 1; }


----------------解决方案--------------------------------------------------------
大概是这样吧: int a=3;f(int n){printf("%*s\n",n+a,"*****"+(a-n )*2);}main(int n){n<a && (f(n),main(n+1)),f(n);}
----------------解决方案--------------------------------------------------------
  相关解决方案