안녕하십니까?
List 로 data 가 있습니다.
(setq a (list 100 200 50 30))
(setq b (max a)) ; 이렇게는 안됩니다.
(setq n ( ~~~~~~ )) -> 답은 200 이 젤 크니 1 이 나오게 하려고 합니다.
(princ n) ; 답
도와 주세요 `~~~~~
신내동Lv.0
list 에서 가장 큰 수의 위치를 구하는 방법
공유
(car (vl-sort-i a ‘>))
감사합니다. ^,^
즐겁고 건강한 나날 되시기 바랍니다.
하나 더 질문 드립니다.
n 번째 값을 -200 으로 변경하려면 어떻게 해야되는지요?
염치 없게 자꾸 물어 보내요 ㅠ,ㅠ
같은 값이 2개이상일 수도 있습니다.
같은 값 모두 변경 (subst -200 (nth n a) a)
n번째만 변경할 경우 카운터를 하는 것도 한가지 방법입니다.
(setq i -1)
(mapcar ‘(lambda (x) (setq i (1+ i)) (if (= i n) -200 x)) a)
?? 아래와 같이 만들어 보았는데 잘 안되네요 ㅠ,ㅠ
(defun c:t()
(setq nArea (list 100 200 300 400 500))
(setq n 0)
(repeat 5
(princ “n”)
(princ n)
(princ ” – “)
(princ (nth n nArea))
(princ ” – “)
(setq nA (car (vl-sort-i nArea ‘>)))
(Princ nA)
(setq i -1)
(mapcar ‘(lambda (x) (setq i (1+ i)) (if (= i nA) -200 x)) nArea)
(princ ” – “)
(princ (nth i nArea))
(alert “test1”)
(setq n (1+ n))
) ; repeat
)
^,^
참고로 이 리습은 큰값 부터 의 번호 순서를 부여하려고 하는 것입니다.
에궁 저장을 하셔야죠.
(setq nArea (mapcar ‘(lambda (x) (setq i (1+ i)) (if (= i nA) -200 x)) nArea))
문장의 흐름도 약간 이상하고….이 문장은 자체로 반복수행입니다.
번호순서는 (vl-sort-i a ‘>) 여기서 바로 나옵니다.
감사합니다^,^