taishen2184
2017-07-15 07:56
采纳率: 80%
浏览 1.6k

求大神解答一到c题目字母塔……

求字母塔输出………………………………………………………………………………………………………………………………………………………………………………………………………………………………图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • YAN_HUAXIANGMO 2017-07-15 09:45
    已采纳

    方法可能比较蠢,但是可行
    java代码

    public class 输出字母塔 {
        public static void main(String[] args) {
            char ch = 'A'-1;
            int x = 0;
            int col = 1;//这里的col控制每行字母个数
            int line = 0;
        while(x<26){//这个循环用于统计行数
            for(int y = 0; y<col; y++,x++){
                ch = (char)(ch+1);//这里强转
                //System.out.print(ch);
            }
            col += 2;//下一行递增2
            line++;//统计行数
            //System.out.print("\n");
        }
        x = 0;ch = 'A'-1;col = 1;//重置全局变量
        while(x<26){//这个循环用于输出字母塔
            for(int p=0; p<line-1; p++){//先输出前面空格
                System.out.print(" ");//输出line-1个空格
            }
            line--;//下一行空格数又减一
            for(int y = 0; y<col; y++,x++){
                if(x>=26)
                    break;
                ch = (char)(ch+1);//这里对'A'+y转换成后面的字母
                System.out.print(ch);
            }
            col += 2;//下一行递增2
            System.out.print("\n");
        }
        }
    
    }
    
    

    c两年没碰了,不过差不多应该如下:

    #include <stdio.h>
    #include <stdlib.h>
            char ch = 'A'-1;
            int x = 0;
            int col = 1;//这里的col控制每行字母个数
            int line = 0;
        while(x<26){//这个循环用于统计行数
            for(int y = 0; y<col; y++,x++){
                ch = (char)(ch+1);//这里强转
                //printf("%s",ch);
            }
            col += 2;//下一行递增2
            line++;//统计行数
            //printf("\n");
        }
        x = 0;ch = 'A'-1;col = 1;//重置全局变量
        while(x<26){//这个循环用于输出字母塔
            for(int p=0; p<line-1; p++){//先输出前面空格
                printf(" ");//输出line-1个空格
            }
            line--;//下一行空格数又减一
            for(int y = 0; y<col; y++,x++){
                if(x>=26)
                    break;
                ch = (char)(ch+1);//这里对'A'+y转换成后面的字母
                printf("%s",ch);
            }
            col += 2;//下一行递增2
            printf("\n");
        }
        }
    
    }
    
    
    点赞 打赏 评论
  • taishen2184 2017-07-15 07:59

    求源码……………………

    点赞 打赏 评论
  • Workholic_365 2017-07-15 08:35

    网上搜搜就有了 有问题可以先自己查找资源 若实在没有可以通过发帖请求各位帮助 祝你在学习的道路上不断前进

    点赞 打赏 评论
  • #include
    #include
    int main()
    {
    int t=65,l=1;//t代表要输出的字符的ASCLL码,l代表本轮要输出字符的个数
    for(int i=1;i<=5;i++)//五行的字母塔
    {
    for(int j=5-i;j>=1;j--)//因为要输出5-i个空格,所以j=5-i
    {
    printf(" ");
    }
    for(int j=1;j<=l;j++)//输出字母
    {
    printf("%c",t);
    t++;//ASCLL码增加一
    }
    l+=2;//每轮输出的字符多两个
    printf("\n");//换行输出
    }
    return 0;//结束
    }

    有问题百度或者谷歌,找不到在来csdn~,祝你在学习的道路上不断前进;

    点赞 打赏 评论

相关推荐 更多相似问题