标题:【求助】自己编了一个输出图案的程序,可惜不理想。它只是简单的输出,而没 ...
只看楼主
zhengbingyin
Rank: 2
等 级:论坛游民
帖 子:52
专家分:20
注 册:2012-3-27
结帖率:100%
已结贴  问题点数:10 回复次数:4 
【求助】自己编了一个输出图案的程序,可惜不理想。它只是简单的输出,而没有经过排版
本来是想输出下面一个样子的
        *
       ***
      *****
     ........(第N行有2N-1个*)
      ......
      *****
       ***
        *
但是编写时只能输出下面那样:
*
***
*****
........
......
*****
***
*
没有想象中的美感
想了半个小时左右也没头绪,特来求助
源代码如下:
#include <stdio.h>
int main (void)
{
    char tuan = '*';
    int hang,b,c;            /*b 用于控制行数 ,c 用于控制打印图案的数目*/
    printf("please input hang = ");
    scanf("%d",&hang);
    for(b = 1;b <= hang;b++)
    {
        for(c = 1;c <= 2 * b - 1;c =c + 2 )
            printf("%c",tuan);
        printf("\n");
    }
    for(b = hang - 1;b >= 0;b--)
        {
            for(c = 2 * b -1;c >= 1;c = c - 2)
                printf("%c",tuan);
            printf("\n");
        }
    return 0;
}
搜索更多相关主题的帖子: 排版 void include 源代码 please 
2012-04-23 20:29
Dick_G
Rank: 2
等 级:论坛游民
帖 子:21
专家分:84
注 册:2012-4-7
得分:2 
在*号前面要输空格
2012-04-23 21:20
Dick_G
Rank: 2
等 级:论坛游民
帖 子:21
专家分:84
注 册:2012-4-7
得分:8 
程序代码:
#include<stdio.h>
main()
{
    int i,j,k,n;
    printf("请输入行数:");
    scanf("%d",&n);
    for(i=0;i<n/2+1;i++)
    {
        for(j=i;j<n/2;j++)printf(" ");
        for(k=0;k<2*i+1;k++)printf("*");
        printf("\n");
    }
    for(i=0;i<n/2;i++)
    {
        for(j=0;j<i+1;j++)printf(" ");
        for(k=0;k<n-2*(i+1);k++)printf("*");
        printf("\n");
    }
}
2012-04-23 21:32
zhengbingyin
Rank: 2
等 级:论坛游民
帖 子:52
专家分:20
注 册:2012-3-27
得分:0 
回复 3楼 Dick_G
思路可供参考,但是也存在着问题:1、N应是中间最多符号的那行 2、当输入偶数的时候,总会少一个*输出
2012-04-24 09:08
zhengbingyin
Rank: 2
等 级:论坛游民
帖 子:52
专家分:20
注 册:2012-3-27
得分:0 
回复 4楼 zhengbingyin
终于自己给折腾出来了,呼,多谢上上楼提供的思路

#include <stdio.h>
int main (void)
{
    char tuan = '*';
    int hang,b,c,d;
    printf("请输入行数 = ");
    scanf("%d",&hang);
    for(b = 1;b <= hang;b++)
    {
        for(d = hang;d - b >= 1;d--)printf(" ");
        for(c = 1;c <= 2 * b - 1;c =c ++ )
            printf("%c",tuan);
        printf("\n");
    }
    for(b = hang - 1;b >= 0;b--)
        {
            for(d = hang - b;d >= 1;d--)printf(" ");
            for(c = 2 * b -1;c >= 1;c = c--)
                printf("%c",tuan);
            printf("\n");
        }
    return 0;
}
结贴去
2012-04-24 09:47



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




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

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