如何由用户定义数组大小和元素?
How to define array size and elements by user?
我目前正在学习 TCL 并且遇到了练习集的问题。思考过程是:
- 脚本会询问数组的大小 (N)。
- 用户输入的是基于N的数组元素
脚本将打印:
- 数组的大小
- 数组的元素
- 数组元素的总和
我一直在寻找方法,找到了 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"
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
如你所见,这是前面循环运算在求和问题上的一个应用
我目前正在学习 TCL 并且遇到了练习集的问题。思考过程是:
- 脚本会询问数组的大小 (N)。
- 用户输入的是基于N的数组元素
脚本将打印:
- 数组的大小
- 数组的元素
- 数组元素的总和
我一直在寻找方法,找到了 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"
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
如你所见,这是前面循环运算在求和问题上的一个应用