You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MIPS中基于数组实现水平条形图?求解决方案

没问题,这个需求其实用Python就能轻松搞定,我给你拆解下实现思路和具体代码:

实现思路

核心逻辑很简单,分三步就能完成:

  • 第一步:定义或获取自定义长度的非负整数数组(可以手动写死,也支持用户输入)
  • 第二步:遍历数组中的每个元素,生成对应数量的星号,注意限制星号数量在0-20之间(如果元素大于20,就只输出20个星号)
  • 第三步:把星号条形和对应的数值一起打印,用对齐格式让图表更规整
Python代码示例(基础版)

如果只是快速验证效果,可以直接手动定义数组:

# 自定义数组,长度和元素都可以随便改
num_array = [4, 5, 6, 7, 22, 0, 15]

# 遍历数组生成条形图
for num in num_array:
    # 确保星号数量不超过20
    star_count = min(num, 20)
    stars = '*' * star_count
    # 左对齐星号,占20位,让所有条形右端对齐,再显示数值
    print(f"{stars:<20} | {num}")

运行这段代码后,输出会是:

****                 | 4
*****                | 5
******               | 6
*******              | 7
******************** | 22
                     | 0
***************      | 15
Python代码示例(用户自定义输入版)

如果想让用户自己设置数组长度和元素,可以加上输入逻辑,还能做输入验证避免错误:

# 让用户输入数组长度
n = int(input("请输入数组长度:"))
num_array = []

# 循环获取每个非负整数,做输入验证
for i in range(n):
    while True:
        try:
            num = int(input(f"请输入第{i+1}个非负整数:"))
            if num >= 0:
                num_array.append(num)
                break
            else:
                print("请输入非负整数哦!")
        except ValueError:
            print("请输入有效的整数!")

# 打印最终的条形图
print("\n生成的水平条形图:")
for num in num_array:
    star_count = min(num, 20)
    stars = '*' * star_count
    print(f"{stars:<20} | {num}")
关键细节说明
  • min(num, 20):这一步是核心,确保即使数组里的数值超过20,也只会输出20个星号,完全符合需求里的0-20范围
  • f"{stars:<20}":用字符串格式化让星号左对齐并占20个字符宽度,这样所有条形的右端能对齐,图表看起来更整洁
  • 输入验证:第二个版本里的循环和try-except是为了防止用户输入负数或非整数,让程序更健壮

如果用其他语言(比如JavaScript、Java),思路也是完全一致的——遍历数组、生成对应星号、限制数量、格式化输出就行,本质逻辑没区别。

内容的提问来源于stack exchange,提问作者Lexie Anne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:45:17