加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用*输出钻石图形

(2013-10-18 18:39:24)
标签:

算法

基数

程序

钻石

图形

it

分类: c语言

输出实心的钻石图形:

-----------------------------------------------------------------

#include
int main(void)
{
 int i,j,k,l,n,t;
 printf("请输入基数:\n");
 scanf("%d",&n);
 t=n/2;
 for(i=0;i
    {
      
     if(i<=t)
     {for(k=0;k<(t+1)-(i+1);k++)
       printf(" ");
   for(j=0;j<(2*(i+1)-1);j++)
       printf("*");
          printf("\n");
        }
        else
        {for(l=0;l<(i-t);l++)
          printf(" ");
         for(j=0;j<((2*t-1)-(i-(t+1))*2);j++)
             printf("*");
          printf("\n");
     }
    }

}

----------------------------------------------------------------

输出空心的钻石图形:

----------------------------------------------------------------

#include
int main(void)
{
 int i,j,k,l,n,t;
 printf("请输入基数:\n");
 scanf("%d",&n);
 t=n/2;
 for(i=0;i
    {
      
     if(i<=t)
     {for(k=0;k<(t+1)-(i+1);k++)
       printf(" ");
   for(j=0;j<(2*(i+1)-1);j++)
      if(j==0||j==2*i) printf("*");
      else printf(" ");
          printf("\n");
        }
        else       
        {for(l=0;l<(i-t);l++)
          printf(" ");
         for(j=0;j<((2*t-1)-(i-(t+1))*2);j++)
             if(j==0||j==((2*t-1)-1-(i-(t+1))*2))printf("*");
             else printf(" ");
          printf("\n");
     }
    
}

----------------------------------------------------------------------

第二种算法:

  实心图形:

#include
int main(void)
{
 int n,j,i;
 scanf("%d",&n);
 for(i=1;i<=n;i++)
 {
  for(j=1;j<=n-i;j++)
     printf(" ");
  for(j=1;j<=2*i-1;j++)
     printf("*");
     printf("\n");
 }
 
 for(i=n-1;i>=1;i--)
 {
  for(j=1;j<=n-i;j++)
     printf(" ");
  for(j=1;j<=2*i-1;j++)
     printf("*");
     printf("\n");
 }
}

-----------------------------------------------------------------------

空心图形:

#include
int main(void)
{
 int n,j,i;
 scanf("%d",&n);
 for(i=1;i<=n;i++)
 {
  for(j=1;j<=n-i;j++)
     printf(" ");
  for(j=1;j<=2*i-1;j++)
    if(j==1||j==(2*i-1)) printf("*");
    else printf(" ");
     printf("\n");
 }
 
 for(i=n-1;i>=1;i--)
 {
  for(j=1;j<=n-i;j++)
     printf(" ");
  for(j=1;j<=2*i-1;j++)
     if(j==1||j==(2*i-1)) printf("*");
     else printf(" ");
     printf("\n");
 }
}

------------------------------------------------------------------

相对来说,第二种更简单!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有