大学职业搜题刷题APP
下载APP
首页
课程
题库模板
Word题库模板
Excel题库模板
PDF题库模板
医考护考模板
答案在末尾模板
答案分章节末尾模板
题库创建教程
创建题库
登录
logo - 刷刷题
创建自己的小题库
搜索
【简答题】

[说明]
为网球比赛的选手安排比赛日程。设有n(n=2m)位选手参加网球循环赛,循环赛共进行n-1天,每位选手要与其他n-1位选手赛一场,且每位选于每天赛一场,不轮空。
设n位选手被顺序编号为1, 2, …, n,比赛的日程表是一个n行n-1列的表,第i行j列的内容是第i号选手第j天的比赛对手。用分治法设计日程表,就是从其中一半选手(2m-1位)的比赛日程导出全体2m选手的比赛日程。从众所周知的只有两位选手的比赛日程出发,反复这个过程,直至为n位选手安排好比赛日程为止。
如两位选手比赛日程表如下所示:
1
1
2
2
1
如四位选手比赛日程表如下所示:
1 2 3
1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1
函数中使用的预定义符号如下:
#define M
int a[M+1][M];
[函数]
void main()
int twom1, twom, i, j, m, k;
printf("指定n(=2的k次幂)位选手, 请输入k: \n");
scanf("*d", &k);
/*预设两位选手的比赛日程*/
a[l] [1] = 2;
a[2] [1] = 1;
m = 1;
twoml = 1;
while(______)
m++;
twoml += twoml;
twom = twoml * 2;/*为2^m位选手安排比赛日程*/
/*填日程表的左下角*/
for(i = twoml + i; ______; i++)
for(j = i; j <= twoml - i; j++)
a[i] [j] = a[i - twoml] [j] + twoml;


/*填日程表的右上角*/
a[1] [twoml] = ______;/*填日程表右上角的第1列*/
for(i = 2; i <= twoml; i++)
a[i] [twoml] = a[i - 1] [twoml] + i;

/*填日程表右上角的其他列,参照前一列填当前列+/
for(j = twoml + 1; j < twom; j++)
for(i = i; i < twoml; i++)
a[i] [j] = ______;

a[twoml] [j] = a[l] [j - 1];

/*填日程表的右下角*/
for(j = twoml; j < twom; j++)
for(i = i; i <= twoml; i++)
a[______] [j] = i;


/*输出日程表*/
for(i = i; i <= twom; i++)
for(j = i; j < twom; j++)
printf("%4d", a[i] [j]);

printf("\n");

printf("\n");

手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
收藏 - 刷刷题收藏
举报
参考答案:
举一反三

【单选题】众所周知,逼哥是

A.
日本人
B.
罗马人
C.
不是人
D.
外星人
相关题目:
【单选题】众所周知,逼哥是
A.
日本人
B.
罗马人
C.
不是人
D.
外星人
刷刷题-刷题-导入试题 - 刷刷题
参考解析:
AI解析
重新生成
题目纠错 0
发布
刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-单词鸭