| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8823 人关注过本帖
标题:输出金字塔字母的问题求教
只看楼主 加入收藏
阿牧
Rank: 1
等 级:新手上路
威 望:1
帖 子:138
专家分:0
注 册:2007-11-5
结帖率:100%
收藏
 问题点数:0 回复次数:12 
输出金字塔字母的问题求教
/*我是新手,学习到循环这一章,做课后的编程习题,遇到些困难,请高手指点一下。论坛里也有金字塔的贴,不过情形不大一样。
要求:比如输入字母E,形成金字塔排列。
    A
   ABA
  ABCBA
 ABCDCBA
ABCDEDCBA
需要用到一个外部循环控制行,三个内部循环,一个控制空格,一个控制字母升序输出,一个控制字母降序输出。
升序的没问题,降序要怎么写?我很久弄不好。注意:因为只学到循环一章,后面的分支跳转if等语句都不能用。只能用while或for语句。*/
#include<stdio.h>
 #define totle 65   //字母A的ASC码值
 int main(void)
 {
        int line;
        char letter,ch,fh,rh;
        printf("请输入一个大写字母:\n");
        scanf("%c",&letter);
        for(line=0;line<=(letter-totle);line++)
        {
            for(ch='A';ch<=('A'+line);ch++)           //升序输出字母
            printf("%c",ch);
            for(fh=0;fh<line;fh++)       //降序这个我知道写的不对,重复执行了。
            {
                for(rh=totle+line-1;rh-totle>=0;rh--)
                printf("%c",rh);
        }
           printf("\n");
        }
        getch();
        return 0;
    }
/*因为要搞懂降序输出,空格循环还没写。*/
搜索更多相关主题的帖子: 金字塔 字母 输出 
2007-12-28 09:38
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
把你的改了下!现在可以实现了!
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int line,i;
    char letter,ch;
    printf("请输入一个大写字母:");
    scanf("%c",&letter);
    for(line=0;line<=letter-'A';line++)
    {
        for(i=0;i<letter-'A'-line;i++)
            printf(" ");
        for(ch='A';ch<=('A'+line);ch++)           //升序输出字母
            printf("%c",ch);
        ch-=2;
        while(ch!='A'-1)
            printf("%c",ch--);
        printf("\n");
    }
    system("pause");
    return 0;
}
2007-12-28 10:18
阿牧
Rank: 1
等 级:新手上路
威 望:1
帖 子:138
专家分:0
注 册:2007-11-5
收藏
得分:0 
非常感谢,我会好好研究一下你写的程序。
看似很简单,可是我脑子就是转不过弯来。
2007-12-28 10:57
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
2楼不是用tc编的吧

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2007-12-28 11:05
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
用的dev c++,所以用了system("pause");暂停!
2007-12-28 11:16
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define totle 65   //字母A的ASC码值
int main(void)
{
        int line;
        char letter,ch;
        int j;
        printf("请输入一个大写字母:");
        scanf("%c",&letter);
        for(line=0;line<=letter-totle;line++)
       {
           j=line;
            for(int i=0;i<letter-'A'-line;i++)
            printf(" ");

            for(ch='A'+abs(j);ch<=('A'+line);)           //升序输出字母
     {  
           printf("%c",ch);
           j  =j-1;
          ch='A'+abs(j);
          }
            printf("\n");
        }
         for(line=letter-totle-1;line>=0;line--)
        {  
          j=line;
         for(int i=0;i<letter-'A'-line;i++)
          printf(" ");
          for(ch='A'+abs(j);ch<=('A'+line);)           //降序输出字母
     {  
             printf("%c",ch);
             j=j-1;
             ch='A'+abs(j);
         }
             printf("\n");
         }
        getch();
        return 0;
    }
这样也可以了
2007-12-28 12:57
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(){
    int m,n,i,j;
    do scanf("%c",&n);while(!isalpha(n));
    n=toupper(n)-'A';m=(n<<1)+1;
    for(i=0;i<=n;i++,putchar('\n'))
        for(j=0;j<m;j++)
            putchar(abs(i-n)+abs(j-n)>n?' ':'A'+i-abs(j-n));
    system("pause");
}
我的答案。

[[italic] 本帖最后由 StarWing83 于 2007-12-28 13:43 编辑 [/italic]]

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-12-28 13:41
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你得代码很简练
2007-12-28 13:45
阿牧
Rank: 1
等 级:新手上路
威 望:1
帖 子:138
专家分:0
注 册:2007-11-5
收藏
得分:0 
回复 7# 的帖子
<stdlib.h>
 <ctype.h>
这两个头文件我还没学到。
2007-12-28 20:36
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
stdlib.h这个其实是为了那个system,暂停用的,
ctype.h是为了那个isalpha,就是判断输入是不是字符
还有一个abs,这个应该知道吧?

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-12-29 02:39
快速回复:输出金字塔字母的问题求教
数据加载中...
 
   



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

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