| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 495 人关注过本帖
标题:求助:一个C问题(百思不得其解)!
只看楼主 加入收藏
dsyayo
Rank: 1
等 级:新手上路
帖 子:13
专家分:7
注 册:2010-1-29
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
求助:一个C问题(百思不得其解)!
     A
    ABA
   ABCBA
  ABCDCBA
     ABCDEDCBA
要求自己输入一个字母,按照上面格式打印出来
比如~输入E就全部打印上面的图案.
百思不得其解望指点....金字塔图形算法已经明了....

[ 本帖最后由 dsyayo 于 2010-2-8 12:51 编辑 ]
搜索更多相关主题的帖子: 百思不得其解 
2010-02-08 12:43
dsyayo
Rank: 1
等 级:新手上路
帖 子:13
专家分:7
注 册:2010-1-29
收藏
得分:0 
#include<stdio.h>
int main()
{
    int i,j;
    int a,b;
    char ch;
    int heng;
    scanf("%c",&ch);
    heng=ch-64;
    for(i=1;i<=heng;i++)
    {
        for(j=i;j<heng;j++)
        {printf("%c",32);}
        for(a=1;a<=2*i-1;a++)
        {

           printf("%c",a+64);
           if(a==i)
            {
              for(b=i;b>1;b--)
               {
            printf("%c",b+63);
               }
            }


        }


    }
    return 0;
}
代码写出来了但是不知道错哪里了
2010-02-08 14:04
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:5 
程序代码:
    for(i=1;i<=heng;i++)
    {
        for(j=1;j<=heng - i;j++)//输出空格 
        {
           printf("%c",32);
        }
        for(a=1;a<=i;a++)
        {
           printf("%c",a+64);
        }
        for(b= i - 1;b>=1;b--)
        {
            printf("%c",b+64);
        }
        printf("\n");
    }
三个循环,输出空格,正序输出,反序输出。另外,建议不要直接用ASCII码
2010-02-08 15:44
dsyayo
Rank: 1
等 级:新手上路
帖 子:13
专家分:7
注 册:2010-1-29
收藏
得分:0 
明白了,for(a=1;a<=i;a++)应该是for(a=1;a<=2*i-1;a++)
2010-02-08 17:54
wuzhenzhou
Rank: 1
等 级:新手上路
帖 子:2
专家分:5
注 册:2010-2-8
收藏
得分:5 
回复 楼主 dsyayo
程序代码:
#include<stdio.h>

void  printchars(char ch, int line, int offset)
{
    int i;
    int lower = ch - offset;
    int chs = offset  * 2 - 1;
    int blank = chs - offset - line;

    for (i = 0; i <= blank; i++)
    {
        printf("%c", ' ');
    }

    for( i = 0; i <= line; i++)
    {
        printf("%c", lower++);
    }

    for(i = 0, lower -= 2; i < line; i++)
    {
        printf("%c", lower--);
    }

}

void printline(char ch, int offset)
{
    int i;

    for(i = 0; i <= offset; i++)
    {
        printchars(ch, i, offset);
        printf("\n");
    }
}

int main()
{
    char ch;
    scanf("%c",&ch);
    if (ch >= 'A' && ch <= 'Z')
    {
        printline(ch, ch-65);
    }
    else if (ch >= 'a' && ch <='z')
    {
        printline(ch, ch-97);
    }
    else
    {
        printf("input error\n");
    }

    return 0;
}
2010-02-08 17:54
dsyayo
Rank: 1
等 级:新手上路
帖 子:13
专家分:7
注 册:2010-1-29
收藏
得分:0 
回复 5楼 wuzhenzhou
学习了!
2010-02-08 17:57
快速回复:求助:一个C问题(百思不得其解)!
数据加载中...
 
   



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

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