给别人写了个一群老师改卷子 就一个要求就是不能改自己的卷子
产生随机序列的代码就在里面
//N个随机数用1~N这N个数随机组成且不重复
#include<bits/stdc++.h>
using namespace std;
struct node
{
int x,y;
} aa[1000010];
bool cmp(node a,node b)
{
return a.x<b.x;
}
int * rand_N(int n)//外面要负责释放返回的指针.
{
int *pn1=new int[n+1];
int *pn2=new int[n];
int i,tmp;
srand(time(0));
for( i=0; i<=n; i++)
{
pn1[i]=0;
}
for(i=0; i<n; i++)
{
tmp=rand()%n+1;
if(pn1[tmp]==0)
{
pn2[i]=tmp;
pn1[tmp] = -1;
}
else
--i;
}
delete []pn1;
return pn2;
}
int main()
{
int n,i;
while(~printf("请输入老师数量\n"))
{
scanf("%d",&n);
int *pn=rand_N(n);
//for(int i=0;i<n;i++)
// {
// cout<<pn[i]<<",";
//}
pn这个数组保存的就是随机序列
printf("\n");
for(i=1; i<=n; i++)
{
aa[i].x=pn[i-1];
aa[i].y=pn[i-1];
}
int xf=1;
int t;
if(n&1)
{
t=aa[1].y;
aa[1].y=aa[2].y;
aa[2].y=t;
xf=2;
}
else
{
for(i=xf; i<=n; i=i+2)
{
t=aa[i].y;
aa[i].y=aa[i+1].y;
aa[i+1].y=t;
}
}
sort(aa+1,aa+n+1,cmp);
for(i=1; i<=n; i++)
printf("%d %d\n",i,aa[i].y);
printf("\n");
delete[]pn;
}
return 0;
}