中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 20:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 给新人出的一道字符排序题(加分题): 查看 2,445 回复 21
16 感觉想复杂了: 发表于 2008-05-21 17:09 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
兄弟不妨写出来看看。
批处理之家新域名:www.bathome.net
17 发表于 2008-05-21 17:38 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
set "str=13 z 113 -3 778 10004 f k a 119 -101 8 -19 m"
for %%a in (%str%) do (
if %%a lss a (
set "var=!var!%%a "
set str=!str: %%a=!
)
)
for %%a in (%var%) do (
set str1=0000000000%%a
set .!str1:~-10!=a
)
for /f "delims=.=" %%i in ('set .') do (
for /f "tokens=* delims=0" %%a in ("%%i") do set/p= %%a<nul&set %%a=A
)
for %%a in (%str%) do (
if not defined %%a (
set str2=0000000000%%a
set #!str2:~-10!=a
)
)
for /f "delims==#" %%i in ('set #') do (
for /f "tokens=* delims=0" %%a in ("%%i") do set/p= %%a<nul
)


很繁琐,只能做到如此程度了,完全是抄袭的~ - -||
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
bat-zw +15 2008-05-21 18:24
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
18 发表于 2008-05-21 18:25 ·  中国 湖北 武汉 电信
初级用户
积分 97
发帖 33
注册 2007-03-05 06:13
19年会员
UID 80815
性别 男
状态 离线
for /f "tokens=1-14" %%a in ("13 z 113 -3 778 10004 f k a 119 -101 8 -19 m") do echo %%k %%m %%d %%l %%a %%c %%j %%e %%f %%i %%g %%h %%n %%b
pause

pause
最苯,最简单的方法
排下版就行了....................
哈哈 表骂偶

[ Last edited by qdloverr on 2008-5-21 at 06:27 PM ]
19 发表于 2008-05-21 18:25 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
加分以鼓励.
批处理之家新域名:www.bathome.net
20 发表于 2008-05-21 18:30 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
Originally posted by zw19750516 at 2008-5-21 06:25 PM:
加分以鼓励.

前辈加错分了啊! 我都说过是抄袭的了~ 以前有过这样一关于排序的贴子啊,貌似是terse前辈的~
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
21 我是新手,可以加分吗 发表于 2009-01-01 06:51 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@echo off&setlocal enabledelayedexpansion

set str= 13 z 113 -3 778 10004 f k a 119 -101 8 -19 m

for %%a in (%str%) do (
if %%a lss 999999 set cc=/%%a
if %%a lss 99999 set cc=//%%a
if %%a lss 9999 set cc=//%%a
if %%a lss 999 set cc=///%%a
if %%a lss 99 set cc=////%%a
if %%a lss 9 set cc=/////%%a
if %%a lss 1 set cc=/%%a
if not %%a lss 999999 set cc=/%%a
set bb!cc!=1
)

FOR /f "tokens=1 delims= " %%i IN ('SET bb ^| SORT /r') DO (
SET abc=%%i
SET abc=!abc:*/=!
SET abc=!abc:/=!
SET abc=!abc:~0,-2!
set ok=!abc! !ok!
)
echo. & echo 原数组:!str! & echo 排序输出:!ok!

pause
精简
=> 个人网志
22 不好意思,再精简一下 发表于 2009-01-02 00:07 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@echo off&setlocal enabledelayedexpansion

set str= 13 z 113 -3 778 10004 f k a 119 -101 8 -19 m

for %%a in (!str!) do (

if %%a geq a (set cc=/%%a) else set cc=///////////%%a
set cc=!cc:~-10!
set bb!cc!=1
)

FOR /f "tokens=1 delims= " %%i IN ('SET bb') DO (
SET abc=%%i
SET abc=!abc:*/=!
SET abc=!abc:/=!
SET abc=!abc:~0,-2!
set ok=!ok! !abc!
)
echo. & echo 原数组:!str! & echo 排序输出:!ok!

pause
论坛跳转: