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

TOP

先来两种方法

一、冒泡法:
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%i in (3 2008 11 19 777 23 2014 453 789 51) do set "str=!str! #%%i#"
  3. set "var=%str%"
  4. for %%a in (%str%) do (
  5.     for %%i in (!var!) do (
  6.         set "a=%%a"&set "b=%%i"
  7.         set "a=!a:#=!"&set "b=!b:#=!"
  8.         if !a! gtr !b! (
  9.         set "var=!var:%%a =!"
  10.         set "var=!var:%%i=%%i %%a!"
  11.         )
  12.     )
  13. )
  14. echo %var:#=%&pause>nul
复制代码
二、补位法:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1,1,80) do set "bw=!bw!0"
  3. for %%i in (3 2008 11 19 777 23 2014 453 789 51) do (
  4.      set "str=%bw%%%i"
  5.      set "_!str:~-80!=%%i"
  6. )
  7. for /f "tokens=2 delims==" %%i in ('set _') do set /p=%%i <nul
  8. pause>nul
复制代码

[ 本帖最后由 batman 于 2008-8-22 14:18 编辑 ]
1

评分人数

    • keen: 补位法最帅!!!PB + 6
***共同提高***

TOP

原帖由 mkl 于 2008-8-22 09:04 发表
不知是否符合题意@echo off&setlocal enabledelayedexpansion
set "p=3 2008 11 19 777 23 2014 453 789 51"
for %%i in (%p%) do (
   set t=1
   for %%r in (%p%) do (
       if %%i gtr %%r set /a t=!t!+ ...

修改成如下可使代码通用些:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "p=3 2008 11 19 777 23 2014 453 789 51"
  3. for %%i in (%p%) do (
  4.    set /a n+=1,t=1
  5.    for %%r in (%p%) do (
  6.        if %%i gtr %%r set /a t+=1
  7.    )
  8.    set !t!=%%i
  9. )
  10. for /l %%i in (1,1,%n%) do set /p=!%%i! <nul
  11. pause>nul
复制代码

[ 本帖最后由 batman 于 2008-8-22 10:51 编辑 ]
***共同提高***

TOP

返回列表