2014-01-09 512 views
-1

我最近开始在Tcl中编程,并且在为我的问题开发代码时遇到困难。 我必须从相同长度的用户接受两个数组元素的输入,然后我找到两个数组元素的添加并将其存储在第三个数组中。 例如arr1包含[1 2 3 4],arr2包含[2 3 4 5]。所以我的第三个数组应该给我[3 5 7 9]作为输出。在tcl中添加数组元素

回答

0

假设你正在谈论TCL列表,而不是TCL数组,你可以这样做:

set l1 {1 2 3 4} 
set l2 {2 3 4 5} 
foreach e1 $l1 e2 $l2 { 
    lappend l3 [expr "$e1 + $e2"] 
} 

这里的诀窍是,这个TCL可以traverse multiple lists simultaneously in a foreach loop

如果需要input from stdin, you can use the gets command同时获得行:

gets stdin l1 
gets stdin l2 
foreach e1 $l1 e2 $l2 { 
    lappend l3 [expr "$e1 + $e2"] 
} 
+0

但如何接受来自两个数组用户..是否有任何一行命令? – user3178631

+0

不清楚你在问什么。你真的在问[tcl数组](http://www.tcl.tk/man/tcl8.4/TclCmd/array.htm)还是[tcl lists](http://www.tcl.tk/)?人/ TCL8.5 /教程/ Tcl14.html)。你在谈论什么方法从用户那里获得输入?从命令行?来自stdin?从别的地方? –

+0

从标准错误我问....和tcl列表.. – user3178631

0

如果拥有Tcl 8.6,可以使用新的lmap命令:

set l1 {1 2 3 4} 
set l2 {2 3 4 5} 
set l3 [lmap x $l1 y $l2 {expr {$x + $y}}]