这是用C#写的,和java差不多的。
按照你的逻辑实现的代码。我规定了分组的顺序,一一分组,比如1,2,3,4男生分到第一组。你也可以随机分组。使用Random随机类,再用一个hash就可以做到。
如果班级人数你给的是个变量,男生人数和女生人数也是变量,分的组数也是个变量。那下面的就是错的了。如果你想问的是这个,我就再写一种输入数据是变量的。
class Program { static void Main(string[] args) { int[] b = new int[37];//男生数组,编号1,2,3,4....36 int[] g = new int[10];//女生数组,编号37,38,39....45 int[,] ans = new int[9,10]; for (int i = 1; i <= 35; i++) { b[i - 1] = i; } for (int i = 37; i <= 45; i++) { g[i - 37] = i; } int boy = 0;int girl =0 ; for (int i = 0; i < 9;i++) { for (int j = 0; j < 5;j++) { if (j < 4) ans[i, j] = b[boy++]; else ans[i, j] = g[girl++]; } } for (int i = 1; i <=9;i++) { Console.WriteLine("第"+i+"组编号如下"); for (int j = 0; j < 5;j++) { Console.Write(ans[i-1,j] + " "); } } } }
感谢!
5个豆子,我也是穷怕了
@枫过留香: 谢谢,蚊子再小也是肉!我还以为没有豆子。
@Shendu.cc: 你能用Random帮我写一些随机分组吗。人数和组数不是变量
@枫过留香:
随机结果:
第1组编号如下
22 19 21 2 39 第2组编号如下
16 34 33 15 41 第3组编号如下
9 5 29 32 42 第4组编号如下
8 14 27 17 37 第5组编号如下
12 26 18 13 44 第6组编号如下
10 6 11 31 45 第7组编号如下
25 1 36 35 40 第8组编号如下
28 20 4 23 38 第9组编号如下
3 7 24 30 43
代码如下:
class Program { public static int[] b = new int[37];//男生数组,编号1,2,3,4....36 public static int[] g = new int[10];//女生数组,编号37,38,39....45 public static int[] tagb = new int[37];//标记男生是否被分组 public static int[] tagg = new int[10];//标记女生是否被分组 public static int[,] ans = new int[9, 10]; public static int boy = 36; public static int girl = 9; static void Main(string[] args) { for (int i = 1; i <= 36; i++) { b[i - 1] = i; tagb[i - 1] = 0; } for (int i = 37; i <= 45; i++) { g[i - 37] = i; tagg[i - 37] = 0; } Random r = new Random(); for (int i = 0; i < 9;i++) { for (int j = 0; j < 5;j++) { if (j < 4) { int x = r.Next(0, boy); ans[i, j] = b[x]; fun(x); } else { int x = r.Next(0, girl); ans[i, j] = g[x]; fun2(x); } } } for (int i = 1; i <=9;i++) { Console.WriteLine("第"+i+"组编号如下"); for (int j = 0; j < 5;j++) { Console.Write(ans[i-1,j] + " "); } } } public static void fun(int x) { for (int i = x; i < 36;i++) { b[i] = b[i + 1]; } boy--; } public static void fun2(int x) { for (int i = x; i < 9; i++) { g[i] = g[i + 1]; } girl--; } }
@Shendu.cc: java里不能"int[,]"哦。
@枫过留香: 我用C#的,我电脑里没有java的编译软件。你就用java的int[][] 一样的,改一下就行。
@Shendu.cc: 那个Next,WriteLine,Write方法是什么呢
@枫过留香: java的应该是NextInt 。WriteLine是System.out.println Write是System.out.print.
你这5个园豆,好赚啊。
@Shendu.cc: 嘿嘿,学艺不精,见笑了哈
@枫过留香: 一起学习,一起学习。
x*9=36
y*9=9
是这个意思吗?
就是用两个数组,一个存男生学号,一个存女生学号。然后随机分成9组。可是我不会代码
感觉可以用递归完成
求救
@枫过留香: 每个分组的人数可以不同吧
@小鹿L: 9组,每组五个人啊四男一女