[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
先抛砖 感觉可以少个FOR
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.    for %%j in (%%i) do (
  4.        set str=%%j
  5.        for /l %%a in (0,1,9) do (
  6.        if "!str:~-1!"=="%%a" set _%%a=!_%%a! %%j
  7. )))
  8. for /l %%a in (0,1,9) do if not "!_%%a!"=="" echo;%%a !_%%a!
  9. pause
复制代码

[ 本帖最后由 terse 于 2009-4-13 17:12 编辑 ]
2

评分人数

    • 随风:PB + 5
    • batman: 这题对兄弟来说感觉。。。PB + 10

TOP

原帖由 terse 于 2009-4-13 17:10 发表
先抛砖 感觉可以少个FOR

虽然少个FOR 但CALL的效率不知道怎么样
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.    for %%j in (%%i) do (
  4.        set str=%%j
  5.        call set _!str:~-1!=%%_!str:~-1!%% %%j
  6. ))
  7. for /l %%a in (0,1,9) do if not "!_%%a!"=="" echo %%a!_%%a!
  8. pause
复制代码
1

评分人数

TOP

重温一下 前面发过没?前面随风兄提示直接for的  后面冒泡排
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.    for %%j in (%%i) do (
  4.        set "str=%%j"
  5.        for %%k in (!str:~-1!) do set/a _%%k+=1&set "_%%k_!_%%k!=%%j"
  6.     )
  7. )
  8. for /l %%a in (0,1,9) do if defined _%%a (
  9.    set /a "c=_%%a-1"
  10.        for /l %%i in (1,1,!c!) do (
  11.            set /a "b=%%i+1"
  12.            for /l %%j in (!b!,1,!_%%a!) do (
  13.            if !_%%a_%%i! gtr !_%%a_%%j! set/a "_%%a_%%j=!_%%a_%%i!,_%%a_%%i=!_%%a_%%j!"
  14.         )
  15.     )
  16.     for /l %%i in (1,1,!_%%a!) do set "var=!var! !_%%a_%%i!"
  17.     echo;%%a!var!&set "var="
  18. )
  19. pause
复制代码

TOP

返回列表