資源簡(jiǎn)介
1. 問(wèn)題描述: 說(shuō)明:設(shè)計(jì)一個(gè)滿(mǎn)足以下要求的比賽日程表: (1)每個(gè)選手必須與其他n-1個(gè)選手各賽一次; (2)每個(gè)選手一天只能賽一次; (3)循環(huán)賽一共進(jìn)行n-1天。 設(shè)計(jì)要求:請(qǐng)使用C語(yǔ)言編程,設(shè)計(jì)一個(gè)有效的算法解決循環(huán)賽日程表問(wèn)題。 設(shè)計(jì)提示:按分治策略,將所有的選手分為兩半,n個(gè)選手的比賽日程表就可以通過(guò)為n/2個(gè)選手設(shè)計(jì)的比賽日程表來(lái)決定。遞歸地用對(duì)選手進(jìn)行分割,直到只剩下2個(gè)選手時(shí),比賽日程表的制定就變得很簡(jiǎn)單。這時(shí)只要讓這2個(gè)選手進(jìn)行比賽就可以了。
代碼片段和文件信息
#include?“stdio.h“
#include?“conio.h“
int?a[100][100]={0};?/*數(shù)組a為全局變量*/
int?b[100]={0};
int?main()
{
??int?ijntk;
??
??printf(“please?input?the?number:“);
??scanf(“%d“&n);
??tournament(n);???????????/*調(diào)用函數(shù)*/
?if(n%2==0&&n>1)????????????/*n為偶數(shù)的輸出日程表*/
{?printf(“\n?the?table?is:\n“);
????for(t=1;t ?????{b[t]=t;
??????if(t==1){
??????????printf(“\n??????日期:%d“b[t]);
??????}
??????else{
??????printf(“%5d“b[t]);?
??????}
?????}
??????printf(“\n“);
???for(k=0;k ???printf(“========“);
???}
???printf(“\n“);
???printf(“選手?|\n“);
???getch();
??for(i=0;i ??{
??for(j=0;j ??{
??printf(“%5d“a[i][j]);
??if(j==0)
??????printf(“|“);
??}
???printf(“\n“);
???for(k=0;k ???printf(“=======“);
???}
???printf(“\n“);
?
??}
??getch();
}
if(n%2==1&&n>1)??????????????/*n為奇數(shù)的輸出日程表*/
{?printf(“\n?the?table?is:\n“);
????for(t=1;t ?????{b[t]=t;
??????if(t==1){
??????????printf(“\n??????日期:%
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????2471??2010-07-13?22:11??循環(huán)賽日程表\xunhuaisai1.c
?????文件??????45292??2010-07-13?22:22??循環(huán)賽日程表\未命名.jpg
?????文件??????45188??2010-07-13?22:22??循環(huán)賽日程表\未命名1.jpg
????..A.SH.?????11776??2010-07-13?22:24??循環(huán)賽日程表\Thumbs.db
?????文件?????142336??2010-09-03?22:27??循環(huán)賽日程表\循環(huán)賽日程表.doc
?????目錄??????????0??2010-09-03?22:27??循環(huán)賽日程表
-----------?---------??----------?-----??----
???????????????247063????????????????????6
評(píng)論
共有 條評(píng)論