中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 11:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]数值排序(难并已解) 精华I 查看 13,046 回复 31
31 再优化: 发表于 2008-05-04 19:09 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
我31楼的代码还是没有考虑到数值前面有n位相同的情况,再次修改如下:

@echo off&setlocal enabledelayedexpansion
set "str=%random% %random% -%random% %random% %random% %random% -%random% "
for %%i in (%str%) do call,set var=!var! n%%in
for %%i in (%var%) do set a=%%i&call :lp
echo !var:n=!
pause>nul&goto :eof
:lp
for %%i in (%var%) do (
set b=%%i&set b=!b:~1,-1!&set c=%a:~1,-1%
if !b! lss !c! (
set var=!var:%a% =!
set var=!var:%%i=%%i %a%!
)
)
批处理之家新域名:www.bathome.net
32 发表于 2008-05-04 19:58 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
标签后的代码好像逻辑上有问题,请测试以下数字。
set "str=111 2 555 111 2 -8 0 -9 9 5 0"
致精致简!
论坛跳转: