标题:【新手求助】循环结构打印菱形问题。(我翻过老帖子了,就是想知道自己是怎 ...
只看楼主
lol
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-1-23
结帖率:100%
已结贴  问题点数:10 回复次数:5 
【新手求助】循环结构打印菱形问题。(我翻过老帖子了,就是想知道自己是怎么错的。)
完整题目如下:
编写程序,打印以下图案
   *
  ***
 *****
*******
 *****
  ***
   *  (ps:这个菱形怎么老是偏了呢
我写的如下:
程序代码:
#include <stdio.h>
void main()
{
    int i,j,k;
    for(i=1;i<=4;i++)
    {
        for(j=1;j=4-i;j++)
            printf(" ");                              
        for(k=1;k<=2*k-1;k++)                          *
            printf("*");                              ***
        printf("\n");                                *****
    }                    \\这行以上单独打出来是     *******
    for(i=5;i<=7;i++)
    {
        for(j=1;j<=i-4;j++)
            printf(" ");
        for(k=1;k<=2*(8-i)-1;k++)
           printf("*");                                *****
        printf("\n");                                   ***
    }                        \\这样以上单独打出来是      *
}

合一起就什么都显示不出来了。
我的是参考下面code做出来的:
程序代码:
#include<stdio.h>
void main()
{
    int n,j,k,l,i;
    printf("shu ru ji shu\n");
    scanf("%d",&l);
    for(n=1;n<=l/2+1;n++)
    {
        for(j=0;j<l/2+1-n;j++)
            printf(" ");
        for(k=1;k<=2*n-1;k++)
            printf("*");
        printf("\n");
     }
   for(i=l-n+1;i>=1;i--)
     {
        for(j=0;j<n-i-1;j++)
            printf(" ");
        for(k=1;k<=2*i-1;k++)
            printf("*");
        printf("\n");
     }
}

我写的只能算是下面code的一个l=7的特例,但紫颜色code应该是等价的啊。
为什么他的可以显示出来而我的不行呢?

起步菜鸟,望大家多多指教。 拜谢拜谢~~

[ 本帖最后由 lol 于 2010-1-28 16:54 编辑 ]
搜索更多相关主题的帖子: 帖子 打印 结构 菱形 
2010-01-28 16:37
mey
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:134
注 册:2009-11-19
得分:0 
楼主可以把菱形分2个部分。
上面部分可以    *
               ***
              *****
             *******按这样输出

下面就按      *****
               ***
                *这样输出
2010-01-28 17:05
xinjinlong
Rank: 3Rank: 3
来 自:河南南阳
等 级:论坛游侠
帖 子:61
专家分:117
注 册:2010-1-19
得分:6 
for(k=1;k<=2*k-1;k++)     
当k>1是,这不就是死循环吗?
2010-01-28 17:19
lol
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-1-23
得分:0 
以下是引用xinjinlong在2010-1-28 17:19:21的发言:

for(k=1;k<=2*k-1;k++)     
当k>1是,这不就是死循环吗?
红字是i,不是k,这里是发帖时打错了的。
关键不在这里吧。
不过还是谢谢了。


[ 本帖最后由 lol 于 2010-1-28 17:48 编辑 ]
2010-01-28 17:42
浩加加
Rank: 2
等 级:论坛游民
帖 子:51
专家分:14
注 册:2009-11-12
得分:4 
楼主`改完后应该是这样```
#include <stdio.h>
void main()
{
    int i,j,k;
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=4-i;j++)
            printf(" ");                              
        for(k=1;k<=2*i-1;k++)          //楼主原来的 是for(k=1;k<=2*k-1;k++)      正确的应该是for(k=1;k<=2*i-1;k++)        
            printf("*");                              
        printf("\n");                              
    }                    
    for(i=5;i<=7;i++)
    {
        for(j=1;j<=i-4;j++)
            printf(" ");
        for(k=1;k<=2*(8-i)-1;k++)  
           printf("*");                                
        printf("\n");                                   
    }                           
}

[ 本帖最后由 浩加加 于 2010-1-28 17:46 编辑 ]

向来缘浅.奈何情深 如花美眷.似水流年
2010-01-28 17:42
lol
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-1-23
得分:0 
哦。查了下记事本里的果然还是那里错了。
哎~还是自己不仔细啊。
多谢xinjinlong和浩加加了。
2010-01-28 17:52



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




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

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