SEO知识:均衡分班算法

求分班算法?

如题,谁知道呀。


先把名次算出来,这个应该不难。
然后Excel里假设名次已经在B2单元格,那么班级就应该是
=IF((MOD(B2,6))=1,1,IF((MOD(B2,6))=2,2,IF((MOD(B2,6))=3,3,IF((MOD(B2,6))=4,3,IF((MOD(B2,6))=5,2,IF((MOD(B2,6))=0,1))))))
SQL也可以
select 学生姓名, 名次,
case when mod(名次, 6) = 1 then 1
when mod(名次, 6) = 2 then 2
when mod(名次, 6) = 3 then 3
when mod(名次, 6) = 4 then 3
when mod(名次, 6) = 5 then 2
when mod(名次, 6) = 0 then 1
end
from 表格

求助~冒泡算法分班~~急~~~

如题,谁知道呀。


unsigned int score[20]={20,30......};//这个分数值自己随便初始化
unsigned int classnum[3] = {1,2,3}; // 班级优先级初始化,下标为优先级,数值为班级,下标越小优先级越高。
unsigned int class[3][10]; //用二维数值表示三个班级,[3]为班级数,【10】为学生分数
unsigned int temp ; // 交换的中间变量
unsigned int indx0,indx1 ;
unsigned int class_indx ;
for(indx0=1 ;indx0<20;indx0++) // 将学生分数排序
{
for(indx1=19;indx1>indx0;indx1--)
{
if( score[indx1]>score[indx0] )
{
temp= score[indx0] ;
score[indx0] = score[indx1] ;
score[indx1] = temp ;
}
}
}
class_indx = 0 ;
indx1 = 0 ;
for(indx0=0;indx<20)
{
class{classnum[indx1][ classnum[indx1] ] = score[indx0] ; //按优先级分班
indx0 ++;
indx1++ ;
if(indx1>=2) //一轮优先级分班结束后,跟换优先级即123变为231
{
temp = class_num[0] ;
for(indx1=0;indx1<2;indx1++) //优先级轮换
{
class_num[indx1] = class_num[indx1+1] ;
}
class_num[indx1] = temp ;
indx1 = 0 ;
class_indx ++ ; //班级位置+1
}
}
因不知道你具体要求就用这个程序是把大致思路写出来了。你可以看明白这个思路后,自己小修改下就成你要的程序了。

文章发布时间与标签:

更新时间:2021-01-24 05:34:39
标签: 按成绩均匀分班算法 什么叫均衡分班

推荐的SEO知识: