伪代码中x[1]的含义是什么?附相关代码及用户疑问
伪代码内容
x = [7, 9, 6, 2, 4] t = x[1] k = x[1] j = x[1] FOR n = 2 TO 5 t = t + x[n] IF x[n] > k THEN k = x[n] ENDIF IF x[n] <j THEN j = x[n] ENDIF NEXT n OUTPUT (“k = ”, k, “j = ”,j) t = t – k – j a = t/3 a = int(a) OUTPUT (“a = ”,a)
(注:原伪代码的OUTPUT语句存在括号嵌套错误,已修正为合理格式)
疑问解答
关于x[1]的含义
在这段伪代码的语境里,数组的索引是从1开始计数的(这和Python、JavaScript等现代主流编程语言从0开始的规则不一样)。所以x[1]指向的是数组x的第一个元素,也就是值7。
为什么t、k、j初始值都相同?
这是这段代码的逻辑设计需求:
t用来计算数组所有元素的总和:先把第一个元素赋值给t,再通过循环从第二个元素(n=2)开始累加,最终得到整个数组的总和。k用来找出数组中的最大值:先把第一个元素作为初始最大值,后续循环遍历中只要遇到比当前k更大的值,就更新k。j用来找出数组中的最小值:和k的逻辑类似,先把第一个元素作为初始最小值,后续遍历遇到更小的值就更新j。
这种初始化方式很合理,因为循环从第二个元素开始,刚好能覆盖数组所有元素完成计算,而且不需要提前知道数组元素的取值范围,是这类统计逻辑的常见写法。
内容的提问来源于stack exchange,提问作者RtHAitP30D




