以下是一个使用Lisp编写的解决方案示例:
(defun read-numbers ()
(let ((numbers '())
(min-value nil))
(loop
(format t "请输入一个数字(输入0结束):")
(let ((input (read)))
(cond
((= input 0)
(return))
((numberp input)
(push input numbers)
(when (or (null min-value) (< input min-value))
(setf min-value input)))
(t
(format t "输入无效,请重新输入~%"))))))
(format t "最小值为:~a~%" min-value))
(read-numbers)
这个解决方案定义了一个名为read-numbers
的函数,该函数从键盘读取数字,直到读取到0为止。它使用一个循环来持续读取用户输入,并将数字存储在一个列表中。在每次读取数字时,它会检查是否出现了新的最小值,并及时更新最小值。当用户输入0时,循环终止,然后显示最小值。
要运行这个Lisp文件,你可以使用一个支持Lisp编程语言的解释器或环境,如SBCL(Steel Bank Common Lisp)或CLISP(Common Lisp implementation)。将代码保存为一个.lisp
文件,然后在解释器中加载和运行它。输入数字,直到你输入0为止,然后最小值将被显示出来。