为了测试等等,删除了一部分东西,可以自己改回来:
不限次数主循环是 :be 。每运算出一套 可用数值 后会暂停,并计数。@echo off&setlocal enabledelayedexpansion
set /p sj=请输入随机数: 举例:(30 10 5 100)
call :ge %sj%
set /a mod=!max!-!min!+1
set /a m=%su%-1
set /a z1=%sum%/%min%
if %su% gtr %z1% echo 参数3 ,太大 &goto :be
set /a z2=%sum%/%max%
if %su% lss %z2% echo 参数3 ,太小 &goto :be
:be
for /l %%i in (1,1,%m%) do (set /a n+=1
set /a r=!random!%%!mod!+!min!
set /a y=!y!+!r!
set /a f=%sum%-!y!
set x=!x!+!r!
if !n!==%m% (
if !f! gtr %min% (if !f! lss %max% (set /a ss+=1
echo %sum%=!f!!x! 第!ss!个&pause>nul
) else call :sub2) else (call :sub2 )))
set n=0&set x=&set y=0
goto :be
pause
exit
:ge
set "max=%1"&set "min=%2"
set "su=%3"&set "sum=%4"
goto :eof
:sub2
set /a z+=1
if !z!==100 (set z=0
echo 累计100次无果&pause)
goto :eof