感觉比上一题简单,整两个随机数,一个乱序排列学生,一个代表学生的分数,努力写代码,顺便顶上去。
- @echo off
- setlocal enabledelayedexpansion
- for %%a in (A B C D) do (
- for /l %%b in (1,1,100) do (
- set /a soc=!random!%%46+55
- set #%%a-!random~-2!-%%a-%%b-!soc!=0
- )
- )
- for /l %%a in (1,1,10) do (
- for /f "tokens=2,3,4 delims=-=" %%b in ('set #') do (
- for %%i in (%%b-%%c:%%d) do (
- set str=%%i
- set /a n+=1
- set /a m=n%%10+1
- if "!str:~0,1!"=="A" if %%d gtr 90 (set "str=!str!:稳定") else (set "str=!str!:退步")
- if "!str:~0,1!"=="B" if %%d lss 80 (set "str=!str!:退步") else (if %%d gtr 90 (set "str=!str!:进步") else (set "str=!str!:稳定"))
- if "!str:~0,1!"=="C" if %%d lss 70 (set "str=!str!:退步") else (if %%d gtr 80 (set "str=!str!:进步") else (set "str=!str!:稳定"))
- if "!str:~0,1!"=="D" if %%d gtr 70 (set "str=!str!:进步") else (set "str=!str!:稳定")
- if !m! equ %%a call set x%%a=!str! !x%%a!
- )
- )
- )
- for /l %%j in (1,1,10) do (
- echo 第%%j班:
- echo !x%%j!
- )
- pause
复制代码 效率出奇的慢,把x%%a=!str! !x%%a!中间的空格改为tab
当然我还有个疑问,是先分好班,输出每个班的学生,然后再分配给每个学生的一个随机的考试分数,然后再按先分好的班输出最后的结果吗?
[ 本帖最后由 sgaizxt001 于 2010-6-30 02:07 编辑 ] |