| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 417 人关注过本帖
标题:帮我看看哪里错了,谢谢
只看楼主 加入收藏
幸福小石头
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2012-3-17
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:9 
帮我看看哪里错了,谢谢
#include<stdio.h>
main()
{
    char c='A';
    int i,k;
    for(i=1;i<=3;++i)
    {
        for(int j=1;j<=(6-2*i);j++)
        {
            printf(" ");
        }
        c='A';
        for(k=1;k<=(2*i-1);++k)
        {
            printf("%c ",c);
        c=c+1;
        if(k==i)
        {
        c='A';
        c=c+i-2;

            for(int n=1;n<i-1;n++)
               
            {printf("%c ",c);
            c=c-1;}
        }
        }
        
    printf("\n");
    }
    return 0;
}
为什么最后一行多输出个B啊?
我想输出的图形是:
     A
   A  B  A
A  B  C  B  A
搜索更多相关主题的帖子: include return 
2012-03-27 19:17
幸福小石头
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2012-3-17
收藏
得分:0 
帮忙看看吧,我是一个初学者
2012-03-27 19:18
幸福小石头
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2012-3-17
收藏
得分:0 
#include<stdio.h>
main()
{
    char c='A';
    int i,k;
    for(i=1;i<=3;i++)
    {
        for(int j=1;j<=(6-2*i);j++)
        {
            printf(" ");
        }
        c='A';
        for(k=1;k<=(2*i-1);k++)
        {
            printf("%c ",c);
        c=c+1;
        if(k==i)
        {
        c='A';
        c=c+i-2;

            for(int n=1;n<i-1;n++)
               
            {printf("%c ",c);
            c=c-1;}
        }
        }
        
    printf("\n");
    }
    for(i=2;i>=1;i--)
    {for(int j=1;j<=6-2*i;j++)
            printf(" ");
        c='A';
        for(k=1;k<=(2*i-1);k++)
        
        {printf("%c ",c);
        c=c+1;}
        if(k==i)
        {
        c='A';
        c=c+i-2;
        

            for(int n=1;n<i-1;n++)
               
            {printf("%c ",c);
            c=c-1;}
        }
        printf("\n");
        }
    return 0;
}
2012-03-27 19:40
幸福小石头
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2012-3-17
收藏
得分:0 
      A
    A  B  A
A  B  C  B  A
    A  B  A  
        A
这是我想输出的图案
2012-03-27 19:43
幸福小石头
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2012-3-17
收藏
得分:0 
      A
   A  B  A
A  B  C  B  A
   A  B  A  
      A
这是我想输出的图案
2012-03-27 19:47
zhoumh91
Rank: 2
等 级:论坛游民
帖 子:4
专家分:10
注 册:2011-2-3
收藏
得分:5 
#include<stdio.h>
#include<stdlib.h>
main()
{
    char c='A';
    int i,k;
    for(i=1;i<=3;++i)
    {
        for(int j=1;j<=(6-2*i);j++)
        {
            printf(" ");
        }
        c='A';
        for(k=1;k<=(2*i-1);++k)
        {
            if(k<i)
               printf("%c ",c++);
            else if(k==i)
               printf("%c ",c);
            else if(k>i)
               printf("%c ",--c);
        }
        printf("\n");
    }
    system("pause");
}
2012-03-27 19:55
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:15 
以下是引用幸福小石头在2012-3-27 19:17:53的发言:

#include
main()
{
    char c='A';
    int i,k;
    for(i=1;i<=3;++i)
    {
        for(int j=1;j<=(6-2*i);j++)
        {
            printf(" ");
        }
        c='A';
        for(k=1;k<=(2*i-1);++k)
        {
            printf("%c ",c);
        c=c+1;
        if(k==i)
        {
        c='A';
        c=c+i-2;

            for(int n=1;n
你的代码看着很令人费解,这是我帮你修改的,你自己理解去吧:
#include<stdio.h>
main()
{
    char c='A';
    int i,k,j,n,d;
    for(i=1;i<=3;++i)
    {
        for(j=1;j<=(6-2*i);j++)
        {
            printf(" ");
        }
        c='A';
        d=1;
        for(k=1;k<=(2*i-1);++k)
        {
            printf("%c ",c);
        if(k==i)
        d=-1;
        c=c+d;
        }
        printf("\n");
    }
    return 0;
}

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2012-03-27 20:19
幸福小石头
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2012-3-17
收藏
得分:0 
还有没有更好的答案啊
2012-03-27 20:20
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
以下是引用幸福小石头在2012-3-27 19:47:32的发言:

      A
   A  B  A
A  B  C  B  A
   A  B  A  
      A
这是我想输出的图案
至于想要这样的结果,只需要如下文修改,定义符号常量增加代码的灵活性,可以改成其他值:
#include<stdio.h>
#define N 3           
main()
{
    char c='A';
    int ii,i,k,j,n,d;
    for(i=1,ii=1;ii<=N*2-1;++ii)
    {
        for(j=1;j<=(2*N-2*i);j++)
        {
            printf(" ");
        }
        c='A';
        d=1;
        for(k=1;k<=(2*i-1);++k)
        {
            printf("%c ",c);
            if(k==i)
                d=-1;
            c=c+d;
        }
        if(ii>=N) i--;
        else      i++;
        printf("\n");
    }
    return 0;
}

[ 本帖最后由 jack10141 于 2012-3-27 20:24 编辑 ]

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2012-03-27 20:22
幸福小石头
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2012-3-17
收藏
得分:0 
谢谢啦,
2012-03-27 20:23
快速回复:帮我看看哪里错了,谢谢
数据加载中...
 
   



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

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