解题思路:
将一个新的数组保存每一个字母对应的出现次数,在打印时候按行输出,先输出最大的那个字母,依次按行打印,打印后次数要 -1
注意事项:
只有打印'* '的时候,需要减1,否则是不减的
参考代码:

# 打印直方图
#s = "THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.THIS IS AN EXAMPLE TO TEST FOR YOURHISTOGRAM PROGRAM.HELLO!"
# 获取字符串的输入
s = ""
for i in range(1, 4 + 1):
    s+=input()

#创建一个长度为26的全0数组
count = [0] * 26
#
for i in range(len(s)):
    if 'A' <= s[i] <= 'Z':
        count[ord(s[i])-ord('A')] += 1

max_high = max(count)

for i in range(0, max_high):
    for j in range(len(count)):
        if count[j] != max_high:
            print('  ',end='')
        else:
            print('* ',end='')
            count[j]-=1
    print()
    max_high -= 1

for i in range(ord('A'), ord('Z')+1):
    print(chr(i),end=' ')


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论