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

【程序1】 题 2

@echo off
set u=1 2 3 4
for %%j in (%u%) do for %%h in (%u%) do for %%g in (%u%) do if %%j neq %%h if %%h neq %%g if %%g neq %%j echo %%j%%h%%g
pause

[ 本帖最后由 mkl 于 2008-8-3 22:49 编辑 ]

TOP

回复 1楼 的帖子

"【程序81】
题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。"
题目中的 “  800*??+9*??+1    ” 后面的 “ +1 ”应该去掉吧?
去掉后这样做:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (10 1 99) do (
  3.    for /l %%b in (10 1 99) do (
  4.       set /a x=9*%%b
  5.       set /a y=8*%%a
  6.       if !y! geq 10 if !y! leq 99 (
  7.          if !x! geq 100 if !x! leq 999 (
  8.             if %%a==%%b (
  9.                set /a k=809*%%a
  10.                set /a l=800*%%a+9*%%a
  11.                if "!k!"=="!l!" (
  12.                   echo "??" 代表的两位数是%%a
  13.                   echo "809*??" 后的结果是!k!
  14.                )
  15.             )
  16.           )
  17.        )
  18.    )
  19. )
  20. pause>nul
复制代码

[ 本帖最后由 mkl 于 2008-8-8 14:30 编辑 ]

TOP

回复【程序4】

费了好大的功夫,终于做出来了.做什么事还得靠自己
  1. @ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION
  2. :KT
  3. SET /P F= 请输入日期,如2008年2月3日 2008-2-3  :
  4. FOR /F "TOKENS=1,2,3 DELIMS=-" %%A IN ("%F%") DO SET K=%%A &SET M=%%B &SET D=%%C
  5. SET G=%K:~-2%
  6. IF "%G%"=="00" (
  7.    SET/A E=%K%/400*400
  8.    IF !E! == %K% GOTO RUN
  9.    IF !E! NEQ %K% GOTO PING
  10. )     
  11. IF "%G%" NEQ "00" (
  12.          SET/A R=%K%/4*4
  13.          IF !R! == %K% GOTO RUN
  14.          IF !R! NEQ %K% GOTO PING
  15. )
  16. :RUN
  17. SET R=4
  18. GOTO H
  19. :PING
  20. SET R=1
  21. GOTO H
  22. :H
  23. GOTO %M%
  24. :1
  25. SET I=0
  26. GOTO Z
  27. :2
  28. SET I=31
  29. GOTO Z
  30. :3
  31. SET I=59
  32. GOTO Z
  33. :4
  34. SET I=90
  35. GOTO Z
  36. :5
  37. SET I=120
  38. GOTO Z
  39. :6
  40. SET I=151
  41. GOTO Z
  42. :7
  43. SET I=181
  44. GOTO Z
  45. :8
  46. SET I=212
  47. GOTO Z
  48. :9
  49. SET I=243
  50. GOTO Z
  51. :10
  52. SET I=273
  53. GOTO Z
  54. :11
  55. SET I=304
  56. GOTO Z
  57. :12
  58. SET I=334
  59. GOTO Z
  60. :Z
  61. IF "%R%" == "1" (
  62. SET/A J=%D%+%I% )
  63. IF "%R%" == "4" (
  64. If "%m%" leq "2" SET /A J=%D%+%I%
  65. IF "%M%" GTR "2" SET /A J=%D%+%I%+1
  66. )
  67. ECHO 你输入的日期是这一年中的第!J!天
  68. GOTO KT
复制代码

TOP

上面的太繁琐,改进后代码如下
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 请输入日期,如2008年8月9日:2008-8-9
  3. set /p p=
  4. for /f "tokens=1,2,3 delims=-" %%i in ("%p%") do set y=%%i &set m=%%j &set d=%%k
  5. set "g= 00+31+28+31+30+31+30+31+31+30+31+30"
  6. set /a s=%m%*3
  7. call set /a j=%%g:~1,%s%%%%d%
  8. set i=%y:~-2%
  9. if "%i%" == "00" (
  10.    set /a k=%y%%%400
  11.    if !k! == 0 (goto run) else goto ping
  12. ) else (
  13. set /a l=%y%%%4
  14.        if !l! == 0 (goto run)else goto ping
  15. )
  16. :run
  17. if %m% leq 2 (set /a j=%j%) else set /a j=!j!+1
  18. :ping
  19. echo 你输入的日期是这一年中的第%j%天
  20. pause&exit
复制代码

TOP

返回列表