我目前正在学习TCL,遇到了我们的练习集问题。思考过程是:
脚本将打印:
我一直在寻找一种方法,并以stdin
为起点。
[更新]尝试编码。它可以满足要求,但我认为可以改进。
array set elements { }
puts "Enter array size: "
gets stdin N
if {($N < 1) || ($N > 10)} {
puts "Array size invalid."
} else {
for {set i 1} {$i <= $N} {incr i} {
puts "Enter element ($i) value: "
gets stdin value
set elements($i) "$value"
}
}
puts "Array size is $N"
parray elements
set sum 0
for {set i 1} {$i <= $N} {incr i} {
set sum [expr {$sum +$elements($i)} ]
}
puts "The sum is $sum"
答案 0 :(得分:0)
Tcl的数组(以及列表和字典)将包含您放入它们的数据量。它们没有您事先声明的固定大小。
要执行N次操作,请使用for
循环,如下所示:
for {set i 1} {$i <= $N} {incr i} {
DoTheActionHereForStep $i
}
您将需要使用一些代码来输入N的值,并使用更多的代码来读取该循环内的值。 (您可以使用array size
获得当前数组的大小。)然后使用puts
再次打印出值,这是将值求和的方式:
set sum 0
for {set i 1} {$i <= $N} {incr i} {
set sum [expr { $sum + $theArray($i) }]
}
# Now $sum is the sum of the values in the array
如您所见,这是先前循环操作对求和问题的一种应用。