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条)

报告相同问题?