题目:600个学生,按成绩1,2,3…599,600号排列分到12班,1号分一班,2号分二班,…12号分到12班,13号分12班,14号分11班,…24号分到1班,25号分到1班,26号分到2班,…这样按成绩来回分班,现在把分到5班的的成绩排号打印出来。
int[][] cla=new int[12][];//开12个班的数组
for(int i=0;i<12;i++)
{
cla[i]=new int[50];//每个班是50个数的一维数组
}
bool forward=true;//往前加还是往后减的标记
int j=-1;//第几班,刚开始会加1,所以从-1开始。
int k=0;//班里的顺序
// Console.WriteLine("Hello World!");
for(int i=1;i<601;i++)
{
if(forward==true)
{
j++;
}
else
{
j--;
}
cla[j][k]=i;
if(i%12==0)//加减方向切换
{
forward=!forward;//切换
k++;//切换时班级里的顺序递增
if(forward==false)//保证切换后的第一数还在原来班级
{
j++;
}
else
{
j--;
}
}
}
foreach(int i in cla[4])
{
Console.WriteLine(i);
}