[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
好难哦,好多不会。占位。。。

TOP

本帖最后由 apang 于 2012-2-24 10:22 编辑

1
  1. @echo off
  2. :start
  3. cls&set/p str=请输入一个4位数:
  4. if "%str:~,-3%"=="" goto start
  5. if not "%str:~4%"=="" goto start
  6. echo 分行输出:&(for /l %%a in (0 1 3) do call echo %%str:~%%a,1%%)
  7. echo 同行输出:&(for /l %%a in (0 1 3) do call set/p=%%str:~%%a,1%% <nul)
  8. echo.&echo 反序输出:&(for /l %%a in (3 -1 0) do call set/p=%%str:~%%a,1%%<nul)
  9. echo.&pause
复制代码
2
  1. @echo off
  2. :start
  3. cls&set/p str=请输入一个4位数:
  4. if "%str:~,-3%"=="" goto start
  5. if not "%str:~4%"=="" goto start
  6. for /l %%a in (0 1 3) do call set/a sum+=%%str:~%%a,1%%
  7. echo 4个数值的和: %sum%&pause
复制代码
3
  1. @echo off
  2. set n=0&set str=
  3. call :loop 2 0 1 2
  4. echo %str%运行了%n%次&pause&exit
  5. :loop
  6. if "%1"=="" goto :eof
  7. set/a n+=1&set aa=%random:~-1%
  8. if "%aa%"=="%1" (set str=%str%%aa%&shift&goto loop) else goto loop
复制代码
4
  1. @echo off
  2. set n=0
  3. set min=0&set max=2012
  4. :loop
  5. set/a n+=1
  6. set/a mod=%max%-%min%+1
  7. set /a str=%random%%%%mod%+%min%
  8. echo 第%n%次 %str%
  9. if not "%str%"=="%max%" set min=%str%&goto loop
  10. pause
复制代码
5
  1. @echo off
  2. set/p input=请输入年份(如2012):
  3. set/a "year=!(%input%%%4)&!(!(%input%%%100))|!(%input%%%400)"
  4. if "%year%"=="1" (echo 闰年) else echo 平年
  5. pause
复制代码
6
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (1 1 12) do (
  3.    set month=%%a&set day=31
  4.    set/a m=!month!%%2
  5.    if !month! geq 8 (if !m! equ 1 set/a day-=1) else if !m! equ 0 set/a day-=1
  6.    if !month! equ 2 set/a day-=1
  7.    for /l %%b in (1 1 !day!) do set/p=2012/!month!/%%b <nul
  8.    echo.
  9. )
  10. pause
复制代码
7
  1. @echo off
  2. set "str=2012 0"
  3. for %%a in (xls doc txt pdf jpg) do call echo %%str%%>2012.%%a
复制代码
8
  1. @echo off&setlocal enabledelayedexpansion
  2. :start
  3. cls&set/p input=请输入一个4位数:
  4. if "!input:~,-3!"=="" goto start
  5. if not "!input:~4!"=="" goto start
  6. :loop
  7. for %%i in (1一 2二 3三 4四 5五 6六 7七 8八 9九 0零) do (
  8.         set "var=%%i"
  9.         if "!input:~,1!"=="!var:~,1!" set str=!str!!var:~1,1!&goto shift
  10.        )
  11. :shift
  12. set "input=!input:~1!"
  13. if not "!input!"=="" goto loop
  14. echo !str!
  15. pause
复制代码
9
  1. @echo off&setlocal enabledelayedexpansion
  2. set str=&set output=
  3. echo 正在生成result.txt文件, 请稍候...
  4. (for /l %%a in (1 1 2012) do (
  5.     set str=%%a
  6.     for %%b in (1一 2二 3三 4四 5五 6六 7七 8八 9九 0零) do (
  7.         set var=%%b&set m=!var:~,1!&set n=!var:~1,1!
  8.         call set str=%%str:!m!=!n!%%
  9.     )
  10.     if "!str:~4!"=="" set output=!str:~,1!千!str:~1,1!百!str:~2,1!十!str:~3,1!
  11.     if "!str:~3!"=="" set output=!str:~,1!百!str:~1,1!十!str:~2,1!
  12.     if "!str:~2!"=="" set output=!str:~,1!十!str:~1,1!
  13.     if "!str:~1!"=="" set output=!str:~,1!
  14.     set output=!output:零百=零!&set output=!output:零十=零!
  15.     set output=!output:零零零=零!&set output=!output:零零=零!
  16.     if "!output:~-1!"=="零" set output=!output:~,-1!
  17.     if "!output:~,1!"=="零" set output=!output:~1!
  18.     if "!output:~,2!"=="一十" set output=!output:~1!
  19.     set/p=!output! <nul
  20. ))>result.txt
复制代码
10
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str1=2012年,祝愿大家:"
  3. set "str2=天天好心情!"
  4. set "str3=事事随心愿!"
  5. for /l %%a in (1 1 3) do set n=0&set str=!str%%a!&call :loop
  6. echo.&pause
  7. :loop
  8. if "!str:~%n%!"=="" echo.&goto :eof
  9. set/p=!str:~%n%,1!<nul&set/a n+=1
  10. for /l %%b in (1 1 500) do echo %%b>nul
  11. goto loop
复制代码
做完了,交差 。。。
1

评分人数

    • batman: 不错,继续努力PB + 70

TOP

同时请大家在解题时稍微注意下代码的运行效率,call来call去再加上goto,代码基本无效率可言。。。
batman 发表于 2012-2-18 21:16



有的题偶根本不会做,会做的也是想破脑袋瓜才做出来滴。对偶来说,实在没办法考虑效率问题呀。。。
超版是不是对新手过于苛求了。。。

TOP

请问超版,第三题我用这种方式生成2012,是不是不妥,或者根本就是错的?
  1. @echo off
  2. set n=0&set str=
  3. call :loop 2 0 1 2
  4. echo %str%运行了%n%次&pause&exit
  5. :loop
  6. if "%1"=="" goto :eof
  7. set/a n+=1&set aa=%random:~-1%
  8. if "%aa%"=="%1" (set str=%str%%aa%&shift&goto loop) else goto loop
复制代码

TOP

返回列表