当前位置: 代码迷 >> C语言 >> 求一个程序的循环设置?
  详细解决方案

求一个程序的循环设置?

热度:257   发布时间:2008-04-13 22:51:00.0
求一个程序的循环设置?
*
     *     *
  *           *
*               *
  *           *
     *     *
        *
请问这个空心菱型图案的循环怎么设置?

[[it] 本帖最后由 corpro 于 2008-4-19 19:56 编辑 [/it]]
搜索更多相关的解决方案: 图案  

----------------解决方案--------------------------------------------------------
几个for就能解决,想一想,中间的空格与行数之间的关系。
----------------解决方案--------------------------------------------------------
程序代码:

/*************************************************************************
                这个是我作的代码,基本实现了你所要求的边长为4的棱形;
                也有许多不足之处,谨作参考。
************************************************************************/
        
#include<stdio.h>
int main(void)
{
        int i,j;
        for(i=1;i<=4;++i)
        {
                for(j=1;j<=10-i;++j)
                        printf(" ");
                printf("*");
                for(j=1;j<=2*i-3;++j)
                        printf(" ");
                if(i==1)
                {
                        puts(" ");
                        continue;
                }
                printf("*");
                puts(" ");
        }
        for(i=3;i>=1;--i)
        {
                for(j=1;j<=10-i;++j)
                        printf(" ");
                printf("*");
                for(j=1;j<=2*i-3;++j)
                        printf(" ");
                if(i==1)
                        break;
                printf("*");
                puts(" ");
        }


        getch();
}

----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main(void)
{for(      )
    for(      )
    for(      )
}
不知道能不能用上面的格式一步实现?而不是把图案分成上下两部分,然后合并来实现?

[[it] 本帖最后由 corpro 于 2008-4-19 19:54 编辑 [/it]]
----------------解决方案--------------------------------------------------------
你想要四行代码版本?


----------------解决方案--------------------------------------------------------
恩,行吗
----------------解决方案--------------------------------------------------------
这程序我以前在哪本书上面看到过,就是想不起来了
----------------解决方案--------------------------------------------------------
我刚写的,供参考,还请指点:

#include <stdio.h>
int main()
{
    int i,j,k;
    for(i=5;i>=0;i--)
    {
        for(j=1;j<=i;j++)
            printf(" ");
        printf("*");
        for(k=1;k<=(5-i)*2-1;k++)
            printf(" ");
        if(i<5)
            printf("*");
        printf("\n");
    }
     for(i=1;i<=5;i++)
    {
        for(j=1;j<=i;j++)
            printf(" ");
        printf("*");
        for(k=1;k<=(5-i)*2-1;k++)
            printf(" ");
        if(i<5)
            printf("*");
        printf("\n");
    }

    return 0;
}
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#define ABS(a)  (a<0?-a:a)
#define N       3
int main()
{
    int i,j;
    for(i=-N;putchar('\n'),i<=N;++i)for(j=-N;j<=N;++j)
    if(ABS(i)+ABS(j)==N)putchar('*');else putchar(' ');
    return 0;
}


偶没有运行过,不知道对不对

[color=white]

[[it] 本帖最后由 雨中秣燕 于 2008-4-19 21:04 编辑 [/it]]
----------------解决方案--------------------------------------------------------
就是RETURN写错了,改了下,行
----------------解决方案--------------------------------------------------------
  相关解决方案