taishen2184 2017-07-15 07:56 采纳率: 80%
浏览 1658
已采纳

求大神解答一到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");
        }
        }
    
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试