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

阅读以下函数说明和C语言函数,回答问题。
[说明]
为参加网球比赛的选手安排比赛日程。
设有n(n=2k)位选手参加网球循环赛,循环赛共进行n-1天,每位选手要与其他n-1位选手赛一场,且每位选手每天赛一场,不轮空。试按此要求为比赛安排日程。
设n位选手被顺序编号为1,2,…,n。比赛的日程表是一个n行n-1列的表,i行j列的内容是第i号选手第j天的比赛对手。用分治法设计日程表,就是从其中一半选手(2m-1位)的比赛曰程,导出全体(2m位)选手的比赛日程。从只有2位选手的比赛日程出发,反复这个过程,直到为n位选手安排好比赛日程为止。
[C函数]
#include<stdio.h>
#define MAXN
int a[MAxN+1][MAXN];
void main()
int twoml,twom,il,j,m,k;
printf("指定n(n=2的k次幂)位选手,清输入k。\n");
scanf("%d",&k);
a[1][1]=2; /*预设2位选手的比赛日程*/
a[2][1]=1;
m=1;twoml=1;
while(m<k)
(1)
twoml+=twoml; /*为2m位选手安排比赛日程*/
(2)
/*填日程表的左下角*/
for(il=twoml+l;il<=twom;i1++)
for(j=1;j<=twoml-1; j++)
a[i1][J]=a[i1-twoml][j]+twoml;
(3)
for(i1=2;i1<=twom;i1++)a[i1][twoml]=a[i1-1][twom1]+l;
for(j=twoml+1;j<twom;j++)
for(i1=1;i1<twoml;i1++) a[i1][j]=a[i1+1][j-1];
(4) ;
/*填日程表的右下角*/
for(j=twoml;j<twom;j++)
for(ii=i;i1<=twoml;i1++)
(5)
for(i1=1;i1<=twom;i1++)
for(j=1;J<twom;j++)
printf("%4d",a[i1][J]);
printf("\n");
printf("\n");

手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
收藏 - 刷刷题收藏
举报
刷刷题
参考答案:
举一反三
相关题目:
刷刷题-刷题-导入试题 - 刷刷题
参考解析:
题目纠错 0
发布
刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-单词鸭