设有n=2^k(k>=1)个选手参加网球循环赛,循环赛共进行n-1天,每位选手要与其他n-1位选手比赛一场,且每位选手每天必须比赛一场,不能轮空。试按此要求为比赛安排日程。 #include <iostream> using namespace std; #define N void Table(int k,int a[][N]) { int n=2; a[1][1]=1;a[1][2]=2; a[2][1]=2;a[2][2]=1; int i,j,t; for (t=1;t<k;t++) { int temp=n; n*=2; for (i=temp+1;i<=n;i++) for (j=1;j<=temp;j++) a[i][j]=a[i-temp][j]+temp; for (i=1;i<=temp;i++) for (j=temp+1;j<=n;j++) ① for (i=temp+1;i<=n;i++) for (j=temp+1;j<=n;j++) a[i][j]=a[i-temp][j-temp]; } cout<<"运动员编号\t"; for (i=1;i<n;i++) { cout<<"第"<<i<<"天\t"; } cout<<endl; for (i=1;i<=n;i++) { cout<<i<<"号运动员:\t"; for (j=2;j<=n;j++) cout<<a[i][j]<<'\t'; if (j==n) cout<<n; cout<<endl; } } void main() { int a[N][N]; int k; cout<<"输入选手个数的次数:"; cin>>k; Table(k,a); } 程序中①处应填入: