鱼C论坛

 找回密码
 立即注册
查看: 3288|回复: 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的代码稍微整理下,可能看起来更清晰,否则过一段时间再看就结构就不清楚了。
#include <stdio.h>
#include <math.h>

//全局数据
int half_width;
//作用在全局数据上的函数
void GetHalfWidth( const char* Msg );
char GetData( int row, int col );
void PrintGraph( );

//主函数
int main(){
        GetHalfWidth("Please input half_width:");        
        PrintGraph( );
}

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

char GetData( int row, int col ) {
        if( row  +col == half_width ) return '*';
        else if( col == half_width+1 ) return '\n';
        else return ' ';
}

void PrintGraph( ) {
        int i,j;
        for( i=-half_width; i<=half_width; ++i )
                //j<=half_width+1为打印换行留空间
                for( j=-half_width; j<=half_width+1; ++j )
                        putchar(GetData( abs(i), abs(j) ));
}
想知道小甲鱼最近在做啥?请访问 -> 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 | 显示全部楼层
我设计了个实心的。。嘿嘿。。。
#include<stdio.h>
main()
{
        int i,j,width;//建立坐标,横坐标为i,纵坐标为j
        printf("请输入最大的宽度值:");
        scanf("%d",&width);
        for(i=1;i<=width;i++)//先编上面的图形
        { 
                for(j=1;j<=width-i;j++)
                printf(" ");
                for(j=1;j<=2*i-1;j++)
                printf("*");
                printf("\n");
        }
        for(i=1;i<=width-1;i++)
        {
                for(j=1;j<=i;j++)
                printf(" ");
                for(j=1;j<=(width*2-1)-2*i;j++)
                printf("*");
                printf("\n");
        }
}
想知道小甲鱼最近在做啥?请访问 -> 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-9-21 11:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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