标题:打印菱形问题代码整理(五种解法)
只看楼主
yaozidm124
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-4-20
得分:0 
感谢LZ的收集啊,大家一起写出来的居然有这么多思路,不简单啊
2008-04-20 18:28
龙年生
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-3-8
得分:0 
真的很长见识,都很有创意的。尤其是宏定义
2008-04-20 18:44
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
得分:0 
闲着无聊俺也写了一个:
程序代码:
#include <stdio.h>
#define  ABS(x)   ((x)>0?(x):(-(x)))
#define  N  10
int main()
{
    int i,j;

    for(i=0;i<2*N-1;i++)
    {
        j=ABS(N-i-1);
        printf("%*c%-*c\b*\n",j+1,' ',2*(N-j)-1,'*');
    }
    return 0;
}



[[it] 本帖最后由 VxWorks 于 2008-4-20 20:30 编辑 [/it]]

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-04-20 20:29
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
得分:0 
赞楼上

" border="0" />[color=white]
2008-04-22 00:06
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 
偶也玩一个

main(o,O,Q){o==1&&(o=(O=scanf("%d",&Q)-1)+2,Q+=2),printf("%*c%*c\n",Q-o+2,42,2*o-4,o-2?42:0),(O=o==Q-1?1:O)?main(o-1,O,Q):main(o+1,O,Q);}

请用TC

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2008-04-22 10:15
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
得分:0 
玩递归main有意思吗?不过是隐藏for循环中的显式迭代把程序变难看而已.
程序代码:
#include <stdio.h>
#define  ABS(x)   ((x)>0?(x):(-(x)))
#define  N  10
int main(int i)
{return i<2*N? printf("%*c%-*c\b*\n",ABS(N-i)+1,' ',2*(N-ABS(N-i))-1,'*'),main(++i): 0;}

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-04-23 13:44
确认密码
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-20
得分:0 
我是菜菜,看不懂。。。。看书去
2008-04-23 14:10
zglcx123
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2007-7-2
得分:0 
可以输入随意数的代码:(vc++6.0编译通过)
#include<stdio.h>
int main(void)
{
    int i, j, number;

    printf("Input your number: ");
    scanf("%i", &number);

    for(i = 0; i < (2*number-1); ++i)
    {

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

    }

    return 0;
}
2008-04-23 15:04
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
得分:0 
楼上要继续加强学习

" border="0" />[color=white]
2008-04-23 15:11
zglcx123
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2007-7-2
得分:0 
???
2008-04-23 15:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-210034-1-1.html




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

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