这个问题一直困扰着我,请求帮助。
这是一个求任意个数的算术平均值,最后想得到的输出结果是:1、输入了几个数?2、输入了哪些数?3、平均值多少?下面的程序已经解决了第一和第三两个问题,就是不知道第二个问题该用什么函数做?请高手指点一二,不胜感激!以下是程序:(defun c:pjz()
(setq n1 (getreal "\n please input number1:"))
(setq s n1)
(setq i 1)
(while n1
(setq n2 (getreal "\n please input next number:"))
(setq s(+ s n2))
(setq i(+ i 1))
(setq pjz (/ s i))
(print "\n")
(print (strcat "共" (rtos i 2 0) "个数"))
(print (strcat "平均值为" (rtos pjz 2 2)))
)
)
(defun c:pjz ()
(vl-load-com)
(setq n1 (getreal "\n please input number1:"))
(setq s n1)
(setq i 1
key T
lst (list n1)
)
(while (and n1 key)
(if (setq n2 (getreal "\n please input next number:"))
(progn
(setq s (+ s n2))
(setq i (1+ i))
(setq pjz (/ s i))
(setq lst (reverse(append (list n2) (reverse lst))))
(setq str
(read
(vl-string-translate "( )" "\"+\"" (vl-princ-to-string lst))
)
)
(print (strcat "共" (rtos i 2 0) "个数,"))
(princ (strcat "平均值为:" (rtos pjz 2 2)))
(print (strcat "输入了:" str))
)
(setq key nil)
)
)
(princ)
) 非常感谢ljpnb 的热心帮助!拓宽了我的思路,谢谢! 恩 确实不错 顶
学习学习.. 不错挺好用的 本帖最后由 zml84 于 2011-11-11 14:40 编辑
;;; 这是一个求任意个数的算术平均值,
;;; 最后想得到的输出结果是:1、输入了几个数?2、输入了哪些数?3、平均值多少?
;;; zml84 修改于 2011-11-11 14:25
(vl-load-com)
(defun c:pjz (/ lst)
;;第一步,输入数据
(while (setq n (getreal "\n请输入数值: "))
(setq lst (cons n lst))
)
;;第二步,处理数据
(setq i (length lst)
sum (apply '+ lst)
a (/ sum i)
)
;;第三步,输出结果
(alert (princ (strcat "\n数据个数 = "
(itoa i)
"\n平均值为 = "
(rtos a 2 2)
"\n数据列表 = "
(vl-prin1-to-string lst)
)
)
)
(princ)
)
页:
[1]