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

答案是:雨中飞燕!
2008-06-11 12:07
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
说实话 代码易懂更重要

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2008-06-11 12:23
网易
Rank: 1
来 自:金星
等 级:禁止访问
帖 子:193
专家分:0
注 册:2008-6-10
收藏
得分:0 
[bo][un]Loli[/un] 在 2008-6-9 01:59 的发言:[/bo]

某人依然没有进步,之前讨论过好多这种类似的题目
写了好多简洁有效的写法,不过,有些人依然我行我素,
明知自己方法不佳,不但不学习好的



http://yzfy.


答案是:雨中飞燕!
2008-06-11 12:47
死了都要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
漫游者李李西
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-11-11
收藏
得分:0 
int x,y;
    cout << "请输入行数:";
    int q;
    cin>>q;
    int i=(q/2);
    for(x = -i;x<=i;x++)
    {
        for(y=-i;y<=i;y++)
        {
            if(abs(x)+abs(y)<=i)
            {
                cout <<"*";
            }
            else
            {
                cout <<" ";
            }
        }
        cout<<endl;
    }
利用几何方法简单些

2008-07-06 09:25
电脑爱好者
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-5-6
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <math.h>
int main()
{
    int n, i, j;
    while((scanf("%d", &n) != EOF) && (n % 2 == 1))
    {
        for(i = 0; i < n; i++){
            for(j = 0; j < n; j++)
            {
                if (fabs((n - 1) / 2 - j) + fabs((n - 1) / 2 - i) <= (n - 1) / 2 )
                    printf("*");
                else
                    printf(" ");

            }
            printf("\n");
        }
    }
    return 0;
}
2008-11-22 23:27
dubukuangye
Rank: 1
等 级:新手上路
威 望:2
帖 子:155
专家分:3
注 册:2008-11-11
收藏
得分:0 
顶,九楼!仰视ing

与其离开她为了过的更好,不如抓住她,自己努力让她过的更好
2008-11-23 10:31
快速回复:基本算法----循环控制---星号菱形
数据加载中...
 
   



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

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