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

Nim语言数组练习遇IndexDefect错误,求正确实现方案

Nim数组索引越界问题解决与练习实现

错误原因分析

你写的countup(0,100,10)会生成0、10、20……100这些数值,而array[10, int]的合法索引是0到9(Nim固定大小数组的索引从0开始,长度为10时最大索引是9)。当循环到i=10时,a[i]就会触发IndexDefect,因为10超出了数组的索引范围。

正确实现代码

# 创建可容纳10个整数的数组
var a: array[10, int]

# 循环填充10、20……100
for i in 0..9:
  a[i] = (i + 1) * 10

# 打印奇数索引对应的元素(索引1、3、5、7、9,对应值20、40……100)
echo "奇数索引元素:"
for i in countup(1, 9, 2):
  echo a[i]

# 将偶数索引元素乘以5
for i in countup(0, 8, 2):
  a[i] *= 5

# 打印修改后的数组
echo "\n修改后的数组:"
echo a

代码说明

  • 填充数组时,遍历索引0到9,每个索引i对应的数值是(i+1)*10,刚好得到10到100的10个整十数。
  • 奇数索引遍历用countup(1,9,2),步长为2,直接命中所有奇数位置。
  • 偶数索引遍历用countup(0,8,2),修改后打印整个数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:55:24