[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
贴一个没有循环和选择结构的顺序性解法
常规之外略作创新
没有刻意处理诸如0或者最大值的边界问题
在运算范围为1时可能会丢失某些可能
为0时则直接报错退出

  1. @echo off
  2. echo.
  3. set /p num=请输入运算范围(如10以内输入10):
  4. set ops=+-
  5. :loop
  6. cls&echo.
  7. rem 生成大数big,在减法中作被减数,在加法中作和数
  8. set /a big=%random% %% %num%+1
  9. rem 生成运算符op,并转换为字符opr,0为加法,1为减法
  10. set /a op=%random% %% 2
  11. call set opr=%%ops:~%op%,1%%
  12. rem 生成运算数opd1,减法为大数big,加法时为小于big的随机数
  13. set /a opd1=big*op + (%random% %% big)*(!op)
  14. rem 生成运算数opd2,减法为小于big的随机数,加法时为big-opr1
  15. set /a opd2=(%random% %% big)*op + (big-opd1)*(!op)
  16. rem 生成结果值result
  17. set /a result=opd1 %opr% opd2
  18. echo %opd1% %opr% %opd2% = ?
  19. echo.
  20. set "answer="
  21. set /p answer=请输入答案:
  22. echo.
  23. rem 根据结果与输入的异同显示提示信息
  24. set _0=正确
  25. set _1=错误,正确答案是%result%
  26. rem 两次取反是想将相减后的差值转换为是否相等的逻辑值0或1
  27. set /a judge=!(!(answer-result))
  28. call echo %%_%judge%%%
  29. pause>nul
  30. goto loop
复制代码
天的白色影子

TOP

返回列表