| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3296 人关注过本帖
标题:基本算法----循环控制---星号菱形
取消只看楼主 加入收藏
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
结帖率:66.67%
收藏
 问题点数:0 回复次数:3 
基本算法----循环控制---星号菱形
本问题转载于 yzfy,org 论坛

输入一个奇数n,输出对角线长为n的实心或者空心的菱形图案
  如当n=5时,有:
    *
   ***
  *****
   ***
    *

下面是我的程序: 偷偷在主管的机子上用TC2。0调式的没问题


/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) [url=http://]http://[/url] **
*****************************************************************/


#include <stdio.h>

#define OC putchar

int main(void)
{
  
int n , num , _1st , line , out , bj = 1 ;


  while( scanf( "%d" , &n ) != EOF && n%2 )
  {
   
if ( n<0 ) { n *= -1 ; bj = 0 ; }

   
for(line = n,num = line/2+1,_1st = 1; line ; line-->n/2+1 ? (++num,_1st+=2):(--num,_1st-=2))
    for(out = num ; out ; --out)
       (out != 1) ? ( out==_1st ? OC('*'):( ( out<_1st&&bj ) ? OC('*'):OC(' ') ) ):( OC('*') , OC('\n'));
  }

  
return 0 ;
}


[[it] 本帖最后由 死了都要C 于 2008-6-11 05:28 编辑 [/it]]

[[it] 本帖最后由 死了都要C 于 2008-6-11 08:45 编辑 [/it]]

[[it] 本帖最后由 死了都要C 于 2008-6-11 08:45 编辑 [/it]]
搜索更多相关主题的帖子: 菱形 星号 算法 图案 
2008-06-11 05:23
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
负数为空心

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-06-11 05:28
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
OJ一下有问题``

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-06-11 09:01
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
上次写的的确很烂```下来又找时间想了想```

现在又写了一个个```我觉得这个应该要比上一个好些``用了一个循环就搞定了``

正整数为空心,负数为实心。0和EOF退出。



/*****************************************************************
** HighlightCodeV3.1 software by yzfy(雨中飞燕) [url=http://]http://[/url] **
*****************************************************************/
#include <stdio.h>

#define NL putchar('\n')
#define XX putchar('*')
#define KB putchar(' ')

int main(void)
{
   
   
int n ;

    while( scanf( "%d", &n ) != EOF && n%2 )
    {
        
        
int sign ;  /* 对输入数的符号的标记 */

        
if ( n>0 ) sign=0 ; else { sign=1 ; n*=-1 ; } /* 标记过程 */

        
int ac = n*n , mid = n*(n/2+1) ; /* 计算中的'*'和' '的数目 还有 转换点 */
        
int xr = ac - n/2 - 1 , xl ;     /* XR为右边的'*'XL为左边的'*'         */

        
for( xl=xr; ac-- ; ac%n ? 1 : ( NL, xr>mid ? (xr-=n-1,xl-=n+1):(xr-=n+1,xl-=n-1) ) )
        {
            
( ac == xr || ac == xl || ( ac>xl && ac<xr && sign ) ) ? XX : KB ;
        }
    }

   
return 0;
}

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-07-06 04:02
快速回复:基本算法----循环控制---星号菱形
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020332 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved