| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:帮忙看看这个程序怎么简化?
只看楼主 加入收藏
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:9 
帮忙看看这个程序怎么简化?
#include<stdio.h>

main()
{
    int a, b, c, d;
   
    for(a=1; a<=5; a++)                           
    {           
        for(d=8; d>=2*a-1; d--)
        {
            printf(" ");
        }
        for(b=1; b<=2*a-1; b++)
        {
            for(c=2; c<=b; c++)                                        *
            {                                                        * * *
                if(c%2==0)                                         * * * * *
                    printf(" ");                                 * * * * * * *
                else                                           * * * * * * * * *
                    break;
            }
            printf("*");
        }
        printf("\n\n");
    }
------------------------------
------------------------------
    for(a=4; a>=1; a--)
    {
        for(d=8; d>=2*a-1; d--)                                  * * * * * * *
            printf(" ");                                           * * * * *
        for(b=1; b<=2*a-1; b++)                                      * * *
        {                                                              *
            for(c=2; c<=b; c++)
            {
                if(c%2==0)
                    printf(" ");
                else
                    break;
            }
            printf("*");
        }
        printf("\n\n");
    }
    getch();
}

程序最后输出的是一个由 * 号组成的完整的棱形,  在上面分开输出来只是说明两个 for 循环的不同输出。 请高手帮忙简化下程序, 只用for或while或if等结构。。  谢谢!
搜索更多相关主题的帖子: include 
2010-03-21 15:07
hziee
Rank: 4
等 级:业余侠客
帖 子:64
专家分:257
注 册:2010-3-12
收藏
得分:1 

#include<stdio.h>
void main()
{
printf("    *\n");
printf("   ***\n");
printf("  *****\n");
printf(" *******\n");
printf("*********\n");
printf("*********\n");
printf(" *******\n");
printf("  *****\n");
printf("   ***\n");
printf("    *\n");
}

这样行吗?
2010-03-21 16:10
xichong
Rank: 7Rank: 7Rank: 7
来 自:四川南充
等 级:黑侠
威 望:2
帖 子:146
专家分:582
注 册:2009-6-10
收藏
得分:5 
#include <stdio.h>
void main()
 {int i,j,k;
  for (i=0;i<=4;i++)
   {for (j=0;j<=3-i;j++)
      printf(" ");
    for (k=0;k<=2*i;k++)
      printf("*");
    printf("\n");
   }
  for (i=0;i<=3;i++)
   {for (j=0;j<=i;j++)
       printf(" ");
    for (k=0;k<=6-2*i;k++)
       printf("*");
    printf("\n");
   }
  }
这样应该可以了吧?
2010-03-21 16:21
xichong
Rank: 7Rank: 7Rank: 7
来 自:四川南充
等 级:黑侠
威 望:2
帖 子:146
专家分:582
注 册:2009-6-10
收藏
得分:0 
输出上面的图形时,在外循环后并列两个内循环:第一个内循环输出左边的空白三角形;第二个内循环输出中间的*三角形。此时右边的空白三角形就已经自然产生了,不需要任何语句来控制。下面的图形是同样的道理!
2010-03-21 16:28
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:3 
#include <math.h>
int main(void)
{
    char *p = "****";
    char *q = "    ";
    int i;
    for (i = 0; i < 9; i ++)
    {
        printf("%s", q+(4-abs(4-i)));
        printf("%s", p+abs(4-i));
        printf("*");
        printf("%s\n", p+abs(4-i));
    }
}

2010-03-21 16:38
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:1 
以下是引用ldg628在2010-3-21 16:38:34的发言:

#include <math.h>
int main(void)
{
    char *p = "****";
    char *q = "    ";
    int i;
    for (i = 0; i < 9; i ++)
    {
        printf("%s", q+(4-abs(4-i)));
        printf("%s", p+abs(4-i));
    ...
2010-03-21 16:44
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
收藏
得分:0 
因为是初学C语言, 所以5楼的程序还看不太明白。
很感谢大家给的各种不同的方法。
2010-03-21 22:04
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
收藏
得分:0 
回复 4楼 xichong
感谢给我解题的另一种思路
2010-03-21 22:10
赤那
Rank: 3Rank: 3
来 自:广东
等 级:论坛游侠
威 望:1
帖 子:127
专家分:178
注 册:2010-3-1
收藏
得分:0 
顶5楼!
2010-03-21 23:44
地狱无明火
Rank: 2
等 级:论坛游民
帖 子:62
专家分:71
注 册:2009-6-11
收藏
得分:0 
来自5楼的改编

程序代码:
#include <stdio.h> 

int main (void)
{
    char* p = "****";
    char* q = "    ";
    for(int i = 1; i <= 5; i++)
    {
        printf("%s", q + i - 1);
        printf("*%s%s\n", p + 5 - i, p + 5 - i);   
    }
    return 0;
}

2010-03-22 08:53
快速回复:帮忙看看这个程序怎么简化?
数据加载中...
 
   



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

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