C++编程实例 随机分配座位,共50个学生,使学号相邻的同学座位不能相邻(早些时候用c#写的,没有用c改写)。 static void main(string[] args) { int tmp = 0, count = 50; int[] seats = new int[count]; bool[] students = new bool[count]; system.random randstudent=new system.random(); students[seats[0]=randstudent.next(0,count)]=true; for(int i = 1; i < count; ) { tmp=(int)randstudent.next(0,count); if((!students[tmp])&&(seats[i-1]-tmp!=1) && (seats[i-1] – tmp) != -1) { seats[i++] = tmp; students[tmp] = true; } } foreach(int student in seats) system.console.write(student + ” “); system.console.read(); } |