2014-01-09 5 views
-1

저는 최근 Tcl에서 프로그래밍을 시작했고 제 문제에 대한 코드를 개발하는 데 어려움을 겪고 있습니다. 동일한 길이의 사용자로부터 두 개의 배열 요소를 입력 받아 두 개의 배열 요소를 추가하여 세 번째 배열에 저장해야합니다. 예 : arr1은 [1 2 3 4]를 포함하고 arr2는 [2 3 4 5]를 포함합니다. 그래서 제 3의 배열은 나에게 [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 arrays] (http://www.tcl.tk/man/tcl8.4/TclCmd/array.htm) 또는 [tcl lists] (http://www.tcl.tk/)에 대해 정말로 묻고 있습니까? man/tcl8.5/tutorial/Tcl14.html). 사용자로부터 입력을받는 방법은 무엇입니까? 명령 줄에서? stdin에서? 다른 곳에서? –

+0

stdin에서 묻습니다 ... 그리고 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}}] 
관련 문제