下面这段代码很简洁,但不知为什么总是1班不对,其他没什么问题,眼睛看红了脑袋想破了,也没找到原因,大家
都来帮帮忙吧!- @echo off&setlocal enabledelayedexpansion
- for %%a in (A B C D) do (
- set /a m=1
- for /l %%b in (1,1,100) do if "%%a-%%b" neq "B-60" if "%%a-%%b" neq "C-49" set "%%a#!random!_%%b=%%a-%%b"
- for /f "tokens=2 delims==" %%b in ('set %%a#') do (
- set /a n+=1
- for %%c in (!m!) do (
- set "X-%%c=!X-%%c! %%b"&set /a v=10
- for %%d in (B3 C8) do if "%%a%%c" equ "%%d" set /a v=9
- if !n! equ !v! set /a n=0,m+=1
- )
- )
- )
- set "X-3=%X-3% B-60"&set "X-8=%X-8% C-49"
- for /l %%a in (1,1,10) do cls&echo X-%%a班:&echo.&echo !X-%%a:~1!&pause>nul
复制代码 思路:
依次将四组学生(除去后门生)按乱序后平分的方法分到10个班,每组分配到每班的学生是10名(当后门生所在
组遇到3、8班时则只分配9名学生),最后将后门生加到所要到的班次中就是的。在实际上校方制作398个四组十类
标签,其中3班高等生组标签和8班中等生组标签各9个,其余各班各组标签各10个,让学生在报到时按组抽签,最后
将后门生直接安排到要到的班级就可以了。
----------------------------------------------------------------------------------------------------------------------------------------------
哈哈,解决了!晕,原来是错将C8写成了D8,真的是太粗心了。
[ 本帖最后由 batman 于 2010-6-28 11:30 编辑 ] |