| @echo off&color 1f&mode con cols=50 lines=5 | | setlocal enabledelayedexpansion | | title 批处理算24 by zw19750516 | | set "code=+ - * /"&set n=1 | | :begin | | cls&echo.&echo 请输入第%n%个(0-9内的)整数,请不要在数字前加0。 | | echo.&set /p num%n%= 请在这里输入: | | echo !num%n%!|findstr "[^0-9]">nul&&goto wrong | | set str=!num%n%! | | if "!str:~,1!" equ "0" if "!str:~1!" neq "" goto wrong | | if !str! gtr 9 goto wrong | | set num=%num% !num%n%!&set /a n+=1 | | if %n% neq 5 goto begin | | set num=%num:~1% | | cls&echo.&echo 你输入的四个数是:%num% | | echo.&echo 请稍候,正在运算中...&ping /n 2 127.1>nul | | :again | | set str=&set var=1234&set /a x+=1,n=4 | | if %x% equ 2000 cls&echo.&echo 对不起,没有算出来,或者这四个数算不出24。&pause>nul&goto :eof | | :lp | | set /a a=%random%%%%n%,m=%random%%%4+1 | | set a=!var:~%a%,1! | | set var=!var:%a%=! | | for /f "tokens=%m% delims= " %%i in ("%code%") do set b=%%i | | :add | | if %n% equ 1 set "b=" | | set str=%str%!num%a%!%b%&set /a n-=1 | | if %n% neq 0 goto lp | | set /a a=%str% | | if %a% neq 24 goto again | | cls&echo.&echo 计算结果为:%str%=24 | | pause>nul&goto :eof | | :wrong | | cls&echo.&echo 输入的数不合要求,请正确输入。&ping /n 2 127.1>nul&goto beginCOPY |
可惜就是不能正确处理除法,要正确处理除法将会很复杂。 |