中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 22:09
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 给新人出的一道字符排序题(加分题):
可打印版本  2,448 / 21
第1楼 bat-zw 发表于 2008-05-21 10:22
金牌会员 发帖 1,276 积分 3,105
给新人出的一道字符排序题(加分题):
有一组字符:13 z 113 -3 778 10004 f k a 119 -101 8 -19 m
要求通过批处理进行排序输出: -101 -19 -3 8 13 113 119 778 10004 a f k m z
请尽量采用不生成临时文件的办法。
PS:第一个做出来的新人,我加15分。
----------------------------------------------------------------------------------------------------------
我的答案:


[ Last edited by zw19750516 on 2008-5-21 at 08:19 PM ]
第2楼 bat-zw 发表于 2008-05-21 12:05
金牌会员 发帖 1,276 积分 3,105
晕,我是出给新人做的!让大家活跃下思维啊。
第3楼 jia332 发表于 2008-05-21 12:51
初级用户 发帖 81 积分 160
@echo on
set var=13 z 113 -3 778 10004 f k a 119 -101 8 -19 m
for /f %%a in ('%var%') do (
set /a var1=%%a,var2=%%b, var3=%%c,var4=%%d,var5=%%e,var6=%%f,var7=%%g,var8=%%h, /a var9=%%i,var10=%%j,var11=%%k,var12=%%l,var13=%%m,var14=%%n
)
echo %var11% %var13% %var4% %var12% %var1% %var3% %var10% %var5% %var6% %var9% %var7% %var8% %var14% %var2%
pause

为什么这样取不出值, 请高手指点

[ Last edited by jia332 on 2008-5-21 at 12:53 PM ]
第4楼 bat-zw 发表于 2008-05-21 12:55
金牌会员 发帖 1,276 积分 3,105
1 你的代码有误:连续set赋值时之间只能用&格开,如set a=1&set b=2。
2 象这样不如直接:echo -101 -19 -3 8 13 113 119 778 10004 a f k m z
第5楼 jia332 发表于 2008-05-21 12:58
初级用户 发帖 81 积分 160
set /a a=1+1,b=2+1,c=3+1
echo %a% %b% %c%
问什么这样就可以,zw19750516能否教小弟一下
第6楼 terse 发表于 2008-05-21 13:06
银牌会员 发帖 946 积分 2,404
我把前面发的改一下应该就可以
第7楼 bat-zw 发表于 2008-05-21 13:11
金牌会员 发帖 1,276 积分 3,105
请terse兄留给新人多思考啊
第8楼 clian76 发表于 2008-05-21 13:17
中级用户 发帖 162 积分 363
太难了..
第9楼 terse 发表于 2008-05-21 13:32
银牌会员 发帖 946 积分 2,404
Originally posted by zw19750516 at 2008-5-21 13:11:
请terse兄留给新人多思考啊

所以我没发出来 这两天股票跌S我 没心情了 还是去看一会盘面
第10楼 zlmjh 发表于 2008-05-21 14:01
新手上路 发帖 2 积分 4
我怎么不会呀
第11楼 jmz573515 发表于 2008-05-21 14:41
银牌会员 发帖 464 积分 1,212
我只能写成这样了...
第12楼 26933062 发表于 2008-05-21 14:43
银牌会员 发帖 879 积分 2,268
作的出这个题的,最多只是论坛新人,绝不会是批处理新人。
第13楼 bat-zw 发表于 2008-05-21 15:01
金牌会员 发帖 1,276 积分 3,105
同意兄的说法,其实我的最终目的还是让论坛能活跃起来。
ps:jmz573515的代码还可以简化。
第14楼 bat-zw 发表于 2008-05-21 16:04
金牌会员 发帖 1,276 积分 3,105
提示:
&&可直接用比较大小的方法,排序时请注意字符的定位和唯一性。
第15楼 pusofalse 发表于 2008-05-21 17:01
银牌会员 发帖 646 积分 1,604
我的思路。。。
先提取出数字,并分别赋予变量,set自动排序
然后判断哪些没有被赋予变量,没有被赋予的就是字母,同上,set第二次排序。。
或者新建文件,分别以这些字母命名,然后dir /b o:n 输出命令结果~
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023