鱼C论坛

 找回密码
 立即注册
查看: 3102|回复: 9

[技术交流] 打印菱形!花了我2天时间才想出来!!!

[复制链接]
发表于 2011-11-19 19:00:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# include <stdio.h>

void main()

{
   int i, j;   //i 表示行,j 表示列;
   int n;      //n表示用户要输入的数;

   printf("input one a number:");
   scanf("%d", &n);

  for(i = 0; i <= n / 2; i++)         
  {
     for(j = 0; j <= n; j++)
     {
       if ((n / 2) - i == j || (n / 2) + i == j)
       {
           printf("*");
       }
       else if( j == n )
       {
          printf("\n");
       }
       else
       {
          printf(" ");
       }
     }
  }

  if(!(n % 2))
  {
     printf("\n");
  }

  for(i = n / 2 - 1; i >= 0; i--)
  {
     for(j = 0; j <= n; j++)
     {
         if((n / 2) - i == j || (n / 2) + i == j)
         {
            printf("*");
         }
         else if(j == n)
         {
            printf("\n");
         }
         else
         {
            printf(" ");
         }
     }
  }
  
}

哎,我是不是很笨呢!!!

评分

参与人数 1鱼币 +4 收起 理由
黑夜 + 4 赞一个!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-11-19 20:16:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-19 20:42:55 | 显示全部楼层
楼主很有创新精神,学编程就是要这样
QQ截图20111119204357.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-19 22:43:44 | 显示全部楼层
恩恩额~这个确实头疼~~不过还是不错~通过了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-20 09:49:31 | 显示全部楼层
把LZ的代码稍微整理下,可能看起来更清晰,否则过一段时间再看就结构就不清楚了。
  1. #include <stdio.h>
  2. #include <math.h>

  3. //全局数据
  4. int half_width;
  5. //作用在全局数据上的函数
  6. void GetHalfWidth( const char* Msg );
  7. char GetData( int row, int col );
  8. void PrintGraph( );

  9. //主函数
  10. int main(){
  11.         GetHalfWidth("Please input half_width:");       
  12.         PrintGraph( );
  13. }

  14. void GetHalfWidth( const char* Msg ) {
  15.         printf(Msg),scanf("%d",&half_width);
  16. }

  17. char GetData( int row, int col ) {
  18.         if( row  +col == half_width ) return '*';
  19.         else if( col == half_width+1 ) return '\n';
  20.         else return ' ';
  21. }

  22. void PrintGraph( ) {
  23.         int i,j;
  24.         for( i=-half_width; i<=half_width; ++i )
  25.                 //j<=half_width+1为打印换行留空间
  26.                 for( j=-half_width; j<=half_width+1; ++j )
  27.                         putchar(GetData( abs(i), abs(j) ));
  28. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-20 11:35:25 | 显示全部楼层
嘻嘻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-20 16:47:02 | 显示全部楼层

高手啊。。。。。感觉回到了WINDOWS API
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-20 16:48:25 | 显示全部楼层
我设计了个实心的。。嘿嘿。。。
  1. #include<stdio.h>
  2. main()
  3. {
  4.         int i,j,width;//建立坐标,横坐标为i,纵坐标为j
  5.         printf("请输入最大的宽度值:");
  6.         scanf("%d",&width);
  7.         for(i=1;i<=width;i++)//先编上面的图形
  8.         {
  9.                 for(j=1;j<=width-i;j++)
  10.                 printf(" ");
  11.                 for(j=1;j<=2*i-1;j++)
  12.                 printf("*");
  13.                 printf("\n");
  14.         }
  15.         for(i=1;i<=width-1;i++)
  16.         {
  17.                 for(j=1;j<=i;j++)
  18.                 printf(" ");
  19.                 for(j=1;j<=(width*2-1)-2*i;j++)
  20.                 printf("*");
  21.                 printf("\n");
  22.         }
  23. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-20 20:13:12 | 显示全部楼层
楼主这个真不错!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-20 21:59:59 | 显示全部楼层
我想用四个字符数组输入,好想也很笨:-(
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 14:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表